Java - 如何从用户获取不确定数量的输入

标签 java user-input

Java问题:

我想从用户那里获取不确定数量的输入。例如,我希望用户继续以字符串形式输入人名,直到用户没有其他名字可输入为止。我想要一种用户友好的方式来轻松指示用户没有更多输入。该循环可能如下所示。有什么好主意吗?任何有关改进代码片段的提示也将受到赞赏。

 BufferedReader read = new BufferedReader(new InputStreamReader(System.in));     

 while( <user still has more input> ) {
      System.out.println("Enter name: ");
      String s = read.readLine();
      ...
      <do something with s>;
      ...
 }

谢谢!

最佳答案

您需要一个不是名称但表示没有更多数据的值。空行就好了。您还想查询他们是否真的想退出,这样万一他们不小心按回车键,他们也不会丢失所有数据。

name = read.readLine(); 
Pattern p = Pattern.compile("^\\s$"); //empty line or one of just space chareacters
if (p.matcher(name).matches()) {
       System.out.println("Are you done?[y/n]");
       if (Pattern.matches("[yY]", read.readLine()) {
          //quit your loop
       }
}

关于Java - 如何从用户获取不确定数量的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4180638/

相关文章:

java - 用户输入后如何将焦点返回到扫描仪?

batch-file - 在 if 语句 = 上做 2 件事

java - 如何在滑动JSlide时显示选中的数字

java - 使用单选按钮上的 onclick 函数生成动态表

java - Groovy 调用已弃用的 getter 方法而不是公共(public)类字段

c++ - 对 C++ Primer 示例中的控制流执行感到困惑

java - 在java中使用它们创建数组时如何准备不合适的用户输入

c++ - 无论我使用什么,我的输入都会被跳过

java - 使用运行时给定的类型创建通用映射

java - JTextField 上的输入 validator 返回不正确