java如何一行输入四个数

java如何一行输入四个数

作者:Rhett Bai发布时间:2026-02-04阅读时长:0 分钟阅读次数:2

用户关注问题

Q
如何在Java中一次性读取多组输入数字?

我想用Java实现一次性输入四个数字,该怎么操作比较简洁?

A

使用Scanner类快速读取多数字输入

可以借助Java的Scanner类,通过调用nextInt() 方法四次来读取四个数。例如:

Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = scanner.nextInt();
int d = scanner.nextInt();

这样就能一行或多行输入四个整数,并分别赋值。

Q
有没有更简洁的方法在Java中处理一行多个数字的输入?

我想读取一整行数字,然后获得其中四个数字,能不能不写四次nextInt()?

A

利用nextLine()加split分割输入字符串

可以先使用Scanner的nextLine()读取整行输入,然后用字符串的split方法分割空格或其他分隔符,最后将分割后的字符串转换为整数,比如:

Scanner scanner = new Scanner(System.in);
String line = scanner.nextLine();
String[] parts = line.split(" ");
int a = Integer.parseInt(parts[0]);
int b = Integer.parseInt(parts[1]);
int c = Integer.parseInt(parts[2]);
int d = Integer.parseInt(parts[3]);

这样输入"10 20 30 40"就能一次性获取四个整数。

Q
在Java中处理输入异常时如何保证程序稳定读取四个数字?

如果用户输入不是四个数字,程序会出错,怎么避免崩溃并提示重新输入?

A

结合循环和异常处理确保有效输入

可以用循环加try-catch块捕获输入转换异常,用Scanner读取输入字符串后解析数字,如果失败,提示用户重新输入。示例代码:

Scanner scanner = new Scanner(System.in);
int[] nums = new int[4];
boolean valid = false;
while (!valid) {
  try {
    String line = scanner.nextLine();
    String[] parts = line.trim().split("\s+");
    if(parts.length != 4) {
      System.out.println("请输入四个数字,用空格分隔");
      continue;
    }
    for(int i = 0; i < 4; i++) {
      nums[i] = Integer.parseInt(parts[i]);
    }
    valid = true;
  } catch (NumberFormatException e) {
    System.out.println("输入包含非数字部分,请重新输入");
  }
}

这样做保证只在输入正确时结束循环,避免程序异常退出。