在 java 中拆分多个整数

Splitting several integers in java

我对 java 很陌生。我试图提示用户输入 4 个整数,然后输入 space 并最终在最后打印出来。我对我写东西的顺序和使用 split(" ");

的顺序有点困惑
import java.util.Scanner;

public class calculations {
    public static void main(String[] args) {

        Scanner Keyboard = new Scanner(System.in);

        System.out.println("Enter 4 integer numbers here: ");

        int numbers = keyboard.nextInt();
        // Need split(" "); here?







    } // End main string args here
} // End class calculations here

如有任何帮助或建议,我们将不胜感激。我已经查看了 Whosebug 上的其他方法,但不知何故我不断收到错误。

  1. 用 keyboard.nextLine
  2. 在一个字符串中读取
  3. 使用String的split方法获取String数组
  4. 使用 Integer.parseInt
  5. 将数组的每个元素转换为 int
  6. 打印你的整数。
import java.util.Scanner;

public class calculations {
    public static void main(String[] args) {

        Scanner Keyboard = new Scanner(System.in);

        System.out.println("Enter 4 integer numbers here: ");

        // Scan an entire line (containg 4 integers separated by spaces):
        String lineWithNumbers = Keyboard.nextLine();
        // Split the String by the spaces so that you get an array of size 4 with
        // the numbers (in a String).
        String[] numbers = lineWithNumbers.split(" ");

        // For each String in the array, print them to the screen.
        for(String numberString : numbers) {
            System.out.println(numberString);
        }

    } // End main string args here
} // End class calculations here

此代码将打印所有数字,如果您确实想对整数执行某些操作(例如数学运算),您可以将字符串解析为 int,如下所示:

int myNumber = Integer.parseInt(numberString);

希望对您有所帮助。

如果建议使用 Scanner class 的功能从用户输入中检索数字:

Scanner keyboard = new Scanner(System.in);
int[] numbers = new int[4];
System.out.println("Enter 4 integer numbers here: ");
for (int i = 0; i < 4 && keyboard.hasNextInt(); i++) {
  numbers[i] = keyboard.nextInt();
}
System.out.println(Arrays.toString(numbers));

这段代码创建了一个大小为 4 的数组,然后遍历用户输入并从中读取数字。如果他有四个数字,或者如果用户输入的不是数字,它将停止解析输入。比如他输入1 blub 3 4,那么数组就是[1, 0, 0, 0].

与以上答案的 nextLine 方法相比,此代码具有一些优势:

  • 你不必关心整数转换(异常处理)
  • 您可以将这些数字写在一行上,也可以将每个数字写在自己的行上

如果您想读取任意数量的数字,请改用 List

List<Integer> numbers = new ArrayList<>();
System.out.println("Enter some integer numbers here (enter something else than a number to stop): ");
while (keyboard.hasNextInt()) {
  numbers.add(keyboard.nextInt());
}
System.out.println(numbers);