【问题标题】:Receive multiple console inputs in Java在 Java 中接收多个控制台输入
【发布时间】:2014-03-27 13:03:49
【问题描述】:

在 C++ 中,当我们需要接收多个控制台输入(都在同一行内键入)时,我们使用以下内容:

int num1, num2, num3;
cin >> num1 >> num2 >> num3;

//Input
21 33 42[Enter]

//Output
21 33 42

要在 Java 中做同样的事情,这是正确的做法吗?

Scanner scn = new Scanner(System.in);
int num1, num2, num3;
num1 = scn.nextInt();
num2 = scn.nextInt();
num3 = scn.nextInt();

【问题讨论】:

  • 我认为您的解决方案是一种不错的方式
  • 是的解决方案是正确的。
  • 所以你回答了你自己的问题。你可以结合声明和赋值(int num1 = scn.nextInt();),但我敢打赌你已经知道了......
  • 所以我想我做的和上面一样。谢谢大家的cmets。我问是因为我没有机会从学校的基础开始学习 Java。我可以用 Java 编写代码,但仍然不确定我是否以正确的方式做事。
  • 试试看。它会起作用或不起作用。 ;)

标签: java input console


【解决方案1】:

你是对的,但是如果你必须在读取整数值之后使用 .nextLine() 读取字符串,如果你在整数之后点击“输入”,nextInt() 将只消耗整数值并忽略回车,如果您尝试在之后立即读取字符串,则 .nextLine() 将使用该回车。在这种情况下,只需在 .nextInt() 之后添加一个额外的 .nextLine() 即可。

【讨论】:

    【解决方案2】:

    如果您想读取未知数量的输入,请尝试以下操作:

    Scanner scn = new Scanner(System.in);
    List<Integer> list = new ArrayList<Integer>();
    String s = "";
    while (!(s = scn.next()).equals("stop")) {
        try {
            list.add(Integer.parseInt(s));
        } catch (NumberFormatException e) {
            System.err.println("Thats not a Number!!");
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-28
      相关资源
      最近更新 更多