当前位置: 首页 > 面试题库 >

Java-如何将以空格分隔的整数读取为数组

贺经纶
2023-03-14
问题内容

我在我的项目中遇到了麻烦,因为我无法正确开始,即从用户读取一行用空格隔开的整数并将值放入数组中。

    System.out.println("Enter the elements separated by spaces: ");
    String input = sc.next();
    StringTokenizer strToken = new StringTokenizer(input);
    int count = strToken.countTokens();
    //Reads in the numbers to the array
    System.out.println("Count: " + count);
    int[] arr = new int[count];

    for(int x = 0;x < count;x++){
        arr[x] = Integer.parseInt((String)strToken.nextElement());
    }

这就是我所拥有的,它似乎只读取数组中的第一个元素,因为初始化count时,出于某种原因将其设置为1。

谁能帮我?以其他方式执行此操作会更好吗?


问题答案:

使您的代码正常工作仅需进行很小的更改。该 错误 是在这一行:

String input = sc.next();

正如我在问题下的评论中指出的那样,它仅读取输入的下一个标记。请参阅文档。

如果您将其替换为

String input = sc.nextLine();

它会执行您想要的操作,因为nextLine()会消耗整个输入行。



 类似资料:
  • 问题内容: 假设我有一个字符串“ 1 23 40 187 298”。该字符串仅包含整数和空格。如何将这个字符串转换为整数数组[1,23,40,187,298]。这就是我尝试的方式 但它不起作用,请提供一些帮助。谢谢! 问题答案: 你忘记了 解析为空字符串以创建新数字位后重置为空字符串 在字符串的末尾将没有空格,所以 } 将不会被调用,这意味着您需要调用 循环后再次 但更简单的方法是只用创建令牌的临

  • 问题内容: 我想从标准输入中读取一组整数值并将其放入整数切片中。不使用循环的最快方法是什么? 例如 如何将这些值放在整数切片中? 问题答案: 无论如何都会有一个循环,这里没有and 循环(在Go Playground 上尝试一下): io: 为了更快地进行输入扫描重写: 使用: 更快的输入扫描

  • 问题内容: 当我的输入为1 2 3(以空格分隔)时,该程序运行良好。但是,当我的输入为1,2,3(以逗号分隔)时,如何修改程序。 问题答案: 您可以使用nextLine方法读取字符串,并使用拆分方法将其以逗号分隔,如下所示: 此方法适用于仅用逗号分隔的3个值。 如果需要更改值的数量,可以使用循环从向量中获取值。

  • 给我一个字符串“23 45”,我需要得到两个值为23的变量(int a)和值为45的变量(int b)

  • 我有这样一个字符串:<代码>0 1-3 4 5 6!7.8 9-10\n11我只想得到两边都有空格或换行符或什么都没有的数字,即0,4,5,6,11。我的regexp只有4和6。 Regexp测试

  • 问题内容: 这个问题很简单,但是我敢打赌,在这里询问可能比尝试理解有关以下文档的方法更直接: 观察值为“ 12,345”。 期望值为“ 12345”。 问题答案: 只需使用