Java数组如何输入元素
- 后端开发
- 2025-07-02
- 8
静态初始化(编译时赋值)
在声明数组时直接赋值,无需运行时输入:


- 特点:元素固定,适用于已知数据的场景。
动态输入(运行时赋值)
通过Scanner从控制台输入
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 步骤1:创建数组 System.out.print("输入数组长度:"); int length = scanner.nextInt(); int[] arr = new int[length]; // 步骤2:循环输入元素 System.out.println("输入" + length + "个整数:"); for (int i = 0; i < length; i++) { arr[i] = scanner.nextInt(); // 读取用户输入 } // 验证输出 System.out.println("数组内容:" + Arrays.toString(arr)); scanner.close(); // 关闭Scanner } }
关键点:

- 用 nextInt() 读取整数,nextDouble() 读取浮点数,next() 读取字符串。
- 循环次数必须与数组长度一致,否则会引发 ArrayIndexOutOfBoundsException。
通过BufferedReader输入(高效处理)
import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print("输入数组长度:"); int length = Integer.parseInt(reader.readLine()); String[] arr = new String[length]; System.out.println("输入" + length + "个字符串:"); for (int i = 0; i < length; i++) { arr[i] = reader.readLine(); // 读取一行文本 } System.out.println("数组内容:" + Arrays.toString(arr)); } }
优势:适合大量数据输入,性能优于 Scanner。
其他输入方式
- 文件输入
使用 FileReader 或 Files.readAllLines() 读取文件数据到数组。
- GUI输入
通过Swing的 JOptionPane.showInputDialog() 弹窗获取数据。
- 命令行参数
通过 main(String[] args) 的 args 数组获取启动参数。
注意事项
- 索引越界
动态输入时,循环变量 i 必须满足 0 ≤ i < arr.length。
- 数据类型匹配
确保输入的数据类型与数组声明类型一致(如 int 数组不能存字符串)。
- 资源释放
使用 Scanner 或 BufferedReader 后调用 close() 释放资源。
- 空指针检查
若数组未初始化(如 int[] arr;),赋值会导致 NullPointerException。
- 静态初始化:适用于数据固定的场景(如 int[] arr = {1,2,3};)。
- 动态输入:需结合循环和输入工具(如 Scanner),适合交互式程序。
- 根据需求选择输入源:控制台、文件、网络等均可转化为数组存储。
引用说明:本文代码示例基于Oracle官方Java教程和《Java核心技术》第11版,符合Java SE 17语法规范,输入输出操作遵循Java I/O标准库文档。