这就是我想要做的事情:
用户在程序中输入数字,程序会对其进行处理。
但是如果用户只是输入“回车”键(或“返回”键)eclipse说
线程“main”中的异常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;
}
答案 0 :(得分:0)
我不确定没有看到更多的代码,但我会这样做:
while (rvalue.trim().isEmpty())
{
System.out.println("invalid input");
rvalue = nerd.readLine();
}
在rvalue = nerd.readLine();
声明之后