【问题标题】:How to read values till user presses enter in JAVA?如何在用户按下 JAVA 输入之前读取值?
【发布时间】:2017-01-26 11:01:16
【问题描述】:

我需要接受以下形式的输入—— 给定“n”个盒子,每个盒子都可以包含任意数量的不同整数, 所以首先用户输入 n,然后对于从 1 到 n 的每个 i 值,我需要输入值直到按下回车键。 我不知道该怎么做 例如-

5
1 2 3 4 5 6 7 8 9 
1 2
1 
4 5 6
3 4 5 6 7

我试过这个-

String str;
for(int i=0;i<n;i++)
{
    while(true)
    {
       str=scanner.next();
       if(str.isEmpty())
          break;
       int val=Integer.parseInt(str);
    }
}

也试过str.equals("\n")和str.equals(""), 但没有任何工作。 有人请帮帮我。谢谢。

【问题讨论】:

标签: java input output java.util.scanner


【解决方案1】:

试试这样的:

int n = scanner.nextInt(); 
for(int i=0;i<n;i++)
{
    String str = scanner.nextLine();
    String[] array = str.split(" ");
}

您从用户那里获取一个字符串(单行数字),然后将其按空格分隔,因此您将所有数字作为字符串保存在数组中。然后你必须将它们解析为 int 或对它们做任何你想做的事情。

【讨论】:

    【解决方案2】:

    在 Scanner 类中有 next(){只接受输入到任何出现的空白字符} nextLine(){ 接受输入到换行符 }

    尝试使用 nextLine() 方法,然后尝试存储在任何数组中 使用 n 值。然后您可以使用 split 或 string tokenzer 函数,然后我们从中提取整数

    【讨论】:

      【解决方案3】:

      试试这个

      String str;
      for(int i=0;i<n;i++)
      {
          while(true)
         {
         str=scanner.next();
         if(!str.equalsIgnoreCase(""))
            break;
         int val=Integer.parseInt(str);
         }
       }
      

      【讨论】:

        【解决方案4】:

        这对我有用

        while (true) {
            String str = sc.nextLine();
            if (str.equalsIgnoreCase("")) break;                        
        }
        

        【讨论】:

          猜你喜欢
          • 2017-06-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-09
          • 1970-01-01
          • 2019-08-25
          • 2016-11-16
          相关资源
          最近更新 更多