上一篇
Java数组如何输入元素
- 后端开发
- 2025-07-02
- 2265
在Java中,数组输入元素主要有三种方式:,1. 声明时直接初始化:
int[] arr = {1, 2, 3};
,2. 通过索引逐个赋值:
arr[0] = 10;
,3. 运行时用Scanner循环读取用户输入:, “`java, Scanner sc = new Scanner(System.in);, for(int i=0; i
静态初始化(编译时赋值)
在声明数组时直接赋值,无需运行时输入:
// 方式1:完整语法 int[] arr1 = new int[]{10, 20, 30}; // 方式2:简写语法(常用) String[] arr2 = {"A", "B", "C"};
- 特点:元素固定,适用于已知数据的场景。
动态输入(运行时赋值)
通过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标准库文档。