给出一些参数如何剪切字符串

时间:2013-08-17 15:31:48

标签: java string

public int cut(int b){
    String str1;
    b = 0;
    Scanner str = new Scanner(System.in);
    System.out.println("Write your string: ");
    str1 = str.next();
    Scanner in = new Scanner (System.in);
    System.out.println("Write a number: ");
    int num1 = in.nextInt();
    System.out.println("Write another number: ");
    int num2 = in.nextInt();
    System.out.println(str1.substring(num1, num2));
    return b;
}

到目前为止,这是我的代码。我想让一个用户写一个字符串,并从他想要剪切他刚输入的字符串的位置写入。我无法得到的部分是获得子串。

1 个答案:

答案 0 :(得分:1)

如果你的字符串中有空格。请改用Scanner#nextLine()

对于输入,“我的输入字符串”

str1 = str.next(); // returns "my" only

因为 space 是Scanner的默认分隔符。要阅读整行,请使用

str1 = str.nextLine(); // returns "my input string"

其次,您根本没有使用Scanner str来阅读这些数字。它应该是

int num1 = str.nextInt(); // instead of in.nextInt()

您还应检查数字是否在界限范围内,或者我认为最好抓住IndexOutOfBoundsException本身。会照顾消极因素而不是消极因素。

try {
    System.out.println(str1.substring(num1, num2));
} catch (IndexOutOfBoundsException e) {
    System.out.println("Range specified is out of bounds for '" + str1 + "'");
}