【问题标题】:How do you detect if there's not input from user (java)你如何检测是否没有来自用户的输入(java)
【发布时间】:2012-04-22 09:00:59
【问题描述】:

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

让他说如果他进入

“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

【问题讨论】:

  • 你能贴出你的代码片段吗?
  • 使用 split 之类的东西来控制计数……
  • 如果没有更多的输入 in.readLine() 将返回 null。
  • 我的目标是……我想知道用户输入了多少行输入

标签: java input compiler-errors nullpointerexception line


【解决方案1】:

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

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

【讨论】:

  • 好的,我的意思是他输入了第一个输入并保存并编译。当我试图做 String nextLine = in.readLine();我得到错误。
  • @LeafC - 我不明白你的评论。
【解决方案2】:

您可以为此目的使用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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 2014-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多