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

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张

// 方式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


其他输入方式

  1. 文件输入
    使用 FileReaderFiles.readAllLines() 读取文件数据到数组。
  2. GUI输入
    通过Swing的 JOptionPane.showInputDialog() 弹窗获取数据。
  3. 命令行参数
    通过 main(String[] args)args 数组获取启动参数。

注意事项

  1. 索引越界
    动态输入时,循环变量 i 必须满足 0 ≤ i < arr.length
  2. 数据类型匹配
    确保输入的数据类型与数组声明类型一致(如 int 数组不能存字符串)。
  3. 资源释放
    使用 ScannerBufferedReader 后调用 close() 释放资源。
  4. 空指针检查
    若数组未初始化(如 int[] arr;),赋值会导致 NullPointerException

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

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

0