0
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;
}

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

4

1 回答 1

1

如果您的字符串中有空格。改为使用Scanner#nextLine()

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

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

因为空格是 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 + "'");
}
于 2013-08-17T15:39:29.660 回答