Java扫描程序或缓冲读取器

时间:2014-06-23 18:14:43

标签: java java.util.scanner bufferedreader

我有一个要求,我必须从控制台读取输入而不是从文件

输入格式如下。我明白我可以使用任何字符退出。但是我不能给出任何其他输入。我可以写一些东西,比如等待特定的时间,如果没有输入中断循环或者还可以做什么来读取我们从未知道的长度的输入。

您好,艾格尼丝
爪牙,BEDO
矢量,收缩光线

以下逻辑将使readline永远等待输入,并且没有帮助,因为我按下的每个输入将再次成为另一个输入字符,它永远不会结束。

我既不想给出任何退出字符来确定输入结束,例如“退出”。如何处理这个??

ArrayList<String> emp=new ArrayList<String>();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
h=br.readLine();
while((h=br.readLine()) != null)
{           
   emp.add(h);         
}

3 个答案:

答案 0 :(得分:0)

您可以添加一个请求用户输入的线程,然后添加一个在每个新输入上重新启动的Timer。当计时器到期时,它会关闭用户输入线程。

答案 1 :(得分:0)

    Scanner reader = new Scanner(System.in);
    System.out.println("Enter something: ");
    String s=reader.nextLine();
    System.out.println("You enetered: " + s);

结果是:

Enter something: 
Mike,Elofson
You enetered: Mike,Elofson

一般来说,根据我的经验,扫描仪更容易,更常用于输入。

答案 2 :(得分:0)

“”输入(即直接按Enter键)或两个/三个连续“”输入。

我认为等待一段时间不是个好主意。无论如何,你需要一些输入来表示结束。