4

好的,所以我正在做这个项目,你必须对用户的输入做一些事情

让说如果他进入

“12 3”

但他没有输入第二个输入

假设我用

String something = in.readLine();

如果我打电话

String nextLine = in.readLine();

我得到错误。我如何检查是否没有第二个输入?

公共静态 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

4

2 回答 2

2

这取决于您所说的“他没有输入第二个输入”的意思:

  • 如果您的意思是用户输入了 EOF 字符(例如 Linux 上的 CTRL-D),那么该readLine()方法将返回 a null,您的应用程序可以(并且应该)显式测试它。

  • 如果您的意思是用户什么都不输入,那么什么也不会发生。您的应用程序将坐在那里等待用户输入下一行。为了解决这个问题,你需要某种超时机制......

于 2012-04-22T09:16:54.813 回答
0

为此,您可以使用Timer类。

看看这里

就像是..

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();
于 2012-04-22T09:19:33.967 回答