如何检测用户是否没有输入(java)

时间:2012-04-22 09:01:00

标签: java input compiler-errors nullpointerexception line

好的,所以我正在使用这个项目,你必须用来自用户的输入

如果他进入

就说

“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

2 个答案:

答案 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();