这就是我想要做的:
用户在程序中输入数字,程序会用它来处理。
但是如果用户只输入“enter”键(或“return”键),eclipse 会说
线程“主”java.lang.StringIndexOutOfBoundsException 中的异常:字符串索引超出范围:0
我需要eclipse说的是“无效输入”并再次要求输入。
这就是我获取输入的方式:
我在一个函数中使用一个缓冲读取器,并且每当我需要读取用户的输入时我都会调用该函数。如果您想参考它,这是我的此功能的代码。此外,该程序是一个覆盖优化程序,以防您也想知道这一点。非常感谢你的帮助!
public static String Reader() {
BufferedReader nerd = new BufferedReader(new InputStreamReader(System.in));
String rvalue = "0";
try {
rvalue = nerd.readLine();
if(elements_typed == 0) {
Integer.parseInt(rvalue);
}
if(sets_typed == 0) {
Integer.parseInt(rvalue);
}
return rvalue;
} catch (IOException e) {
System.out.print("ERROR: Input must be an integer in [1, infinity]!");
display_menu();
} catch (NumberFormatException e) {
System.out.print("ERROR: Input must be an integer in [1, infinity]!\n\n");
if(elements_typed == 0) {
System.out.print("Enter number of elements (n):\n");
rvalue = Reader();
}
if(sets_typed == 0) {
System.out.print("Enter number of sets (n):\n");
rvalue = Reader();
}
}
return rvalue;
}