【问题标题】:How can I take either two or one integer as input on the same line in Java?如何在 Java 的同一行中将两个或一个整数作为输入?
【发布时间】:2018-08-04 04:25:21
【问题描述】:

例如,我如何取值1 0 或仅取值2 然后在程序的后半部分使用。假设1 将数字0 添加到列表中,2 打印出一个短语。现在我只知道如何在同一行使用两个数字

Scanner sc = new Scanner(System.in); // receives input for x y
int x = Integer.parseInt(sc.next());
int y = Integer.parseInt(sc.next());

【问题讨论】:

标签: java input io java.util.scanner


【解决方案1】:

只需在术语之间放置空格:

Scanner scanner = new Scanner(System.in);
int[] values = new int[2];
String[] arguments = scanner.nextLine().split(" ");
for(int i = 0; i < arguments.length && i < values.length; i++){
    values[i] = Integer.parseInt(arguments[i]);
}
scanner.close();

在第 2 行,您指定最大输入数

在“”的第 3 行,您可以指定术语之间的内容

在第 2 行和第 5 行,您可以指定术语类型

【讨论】:

    【解决方案2】:

    只是添加到@Devon Rutledge 的答案中,Scanner 类在它们之间有 1 个或多个空格的条件下分隔标记(在​​本例中为数字)。

    因此,正如上面提到的德文郡,您应该在输入之间添加空格。

    但是,上面发布的答案与普通sc.next() 的工作方式完全相同,尽管存在一个问题,即如果您在输入之间输入两个空格,则会出现五次错误。因此,您的代码本身没有问题,而只是输入。

    如果您确实想要接受不带空格的一位数,那么您可以试试这个:

    Scanner sc = new Scanner(System.in);
    sc.useDelimiter("");
    int x = sc.nextInt();
    int y = sc.nextInt();
    

    另外,最好使用sc.nextInt(),因为sc.next() 甚至可以接受无法转换为int 的字母。

    【讨论】:

      猜你喜欢
      • 2020-07-08
      • 1970-01-01
      • 2020-11-14
      • 1970-01-01
      • 1970-01-01
      • 2014-11-29
      • 1970-01-01
      • 1970-01-01
      • 2013-01-21
      相关资源
      最近更新 更多