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;
}
到目前为止,这是我的代码。我想让一个用户写一个字符串,并从他想要剪切他刚输入的字符串的位置写入。我无法得到的部分是获得子串。
答案 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 + "'");
}