java中如何从键盘输入数组

java中如何从键盘输入数组

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

用户关注问题

Q
如何使用Java从键盘读取整数数组?

我想在Java程序中从用户输入中读取一个整数数组,应该怎么做?

A

使用Scanner读取整数数组

可以使用java.util.Scanner类来实现从键盘读取整数数组。首先创建Scanner对象,接着读取数组的长度,然后循环读取每个整数并存入数组。示例代码:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入数组长度: ");
        int n = scanner.nextInt();
        int[] arr = new int[n];
        System.out.println("请输入" + n + "个整数:");
        for (int i = 0; i < n; i++) {
            arr[i] = scanner.nextInt();
        }
        scanner.close();
        // 数组已读取完毕,可以使用arr进行后续操作
    }
}
Q
如何在Java中处理用户输入的多元素数组?

用户可能一次性输入多个数组元素,Java中如何将这些输入转换成数组?

A

使用Scanner结合字符串分割进行输入

如果用户一次性输入多个元素,例如用空格分隔的数字串,可以先用Scanner读取整行字符串,然后使用String的split方法分割,最后将分割后的字符串转换为需要类型的数组元素。示例代码:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入数组元素,使用空格分隔:");
        String line = scanner.nextLine();
        String[] parts = line.trim().split("\\s+");
        int[] arr = new int[parts.length];
        for (int i = 0; i < parts.length; i++) {
            arr[i] = Integer.parseInt(parts[i]);
        }
        scanner.close();
        // 数组已成功读取并转换
    }
}
Q
如何确保Java键盘输入的数组数据格式正确?

用户可能输入非数字或格式不正确的内容,如何在Java中处理这种情况?

A

用异常处理保证输入合法性

在读取数组元素时,可以利用try-catch捕获NumberFormatException或InputMismatchException异常,以防止用户输入非法字符。程序可以提示用户重新输入直到获取有效数据。示例简化逻辑如下:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = 0;
        while (true) {
            try {
                System.out.print("请输入数组长度: ");
                n = scanner.nextInt();
                break;
            } catch (Exception e) {
                System.out.println("输入错误,请输入整数。");
                scanner.nextLine(); // 清空错误输入
            }
        }
        int[] arr = new int[n];
        for (int i = 0; i < n; ) {
            try {
                System.out.print("请输入第" + (i+1) + "个整数: ");
                arr[i] = scanner.nextInt();
                i++;
            } catch (Exception e) {
                System.out.println("输入错误,请输入整数。");
                scanner.nextLine();
            }
        }
        scanner.close();
    }
}