好的,所以我正在使用这个项目,你必须用来自用户的输入
如果他进入
就说“12 3”
但他没有输入第二个输入
让我们说如果我用
来称呼它String something = in.readLine();
如果我打电话
String nextLine = in.readLine();
我收到错误。我如何检查是否没有第二次输入?
public static void main(String [] args)抛出IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); //ctr + shift + o
String eachLine = in.readLine(); //ex. "12 5"" or "AB 12"
String nextLine = in.readLine();
如果用户输入
“3 2”<<
但不输入第二个..我得到nullpointerexception
答案 0 :(得分:2)
这取决于你的意思是“他没有输入第二个输入”:
如果您的意思是用户输入EOF字符(例如Linux上的CTRL-D),那么readLine()
方法将返回null
,您的应用程序可以(并且应该)明确地测试。
如果您的意思是用户只是输入任何内容,那么没有任何反应。您的应用程序将坐在那里等待用户进入下一行。要解决这个问题,你需要某种超时机制......
答案 1 :(得分:0)
您可以使用Timer类来实现此目的。
看看here
像...这样的东西。
TimerTask task = new TimerTask(){
public void run(){
if( input is empty ){
System.out.println( "you input nothing. exit..." );
System.exit( 0 );
}
}
};
安排Timer
..
Timer timer = new Timer();
timer.schedule( task, timeoutTime);
//阅读输入
String nextLine = in.readLine();
//取消计时器..
timer.cancel();