当前位置:首页 > 后端开发 > 正文

Java数组如何输入元素

在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

静态初始化(编译时赋值)

在声明数组时直接赋值,无需运行时输入:

Java数组如何输入元素 第1张

Java数组如何输入元素 第2张

  • 特点:元素固定,适用于已知数据的场景。


动态输入(运行时赋值)

通过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 } }

关键点

Java数组如何输入元素 第3张

  • 用 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。


其他输入方式

  1. 文件输入

    使用 FileReader 或 Files.readAllLines() 读取文件数据到数组。

  2. GUI输入

    通过Swing的 JOptionPane.showInputDialog() 弹窗获取数据。

  3. 命令行参数

    通过 main(String[] args) 的 args 数组获取启动参数。


注意事项

  1. 索引越界

    动态输入时,循环变量 i 必须满足 0 ≤ i < arr.length。

  2. 数据类型匹配

    确保输入的数据类型与数组声明类型一致(如 int 数组不能存字符串)。

  3. 资源释放

    使用 Scanner 或 BufferedReader 后调用 close() 释放资源。

  4. 空指针检查

    若数组未初始化(如 int[] arr;),赋值会导致 NullPointerException。


  • 静态初始化:适用于数据固定的场景(如 int[] arr = {1,2,3};)。
  • 动态输入:需结合循环和输入工具(如 Scanner),适合交互式程序。
  • 根据需求选择输入源:控制台、文件、网络等均可转化为数组存储。

引用说明:本文代码示例基于Oracle官方Java教程和《Java核心技术》第11版,符合Java SE 17语法规范,输入输出操作遵循Java I/O标准库文档。

0