java中如何输入数组
输入数组的方法
在Java中,输入数组可以通过多种方式实现,具体取决于输入源(如控制台、文件等)和需求。以下是几种常见的方法:
从控制台读取固定长度的数组
使用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("输入数组元素: ");
for (int i = 0; i < n; i++) {
arr[i] = scanner.nextInt();
}
System.out.println("输入的数组: ");
for (int num : arr) {
System.out.print(num + " ");
}
scanner.close();
}
}
从控制台读取不定长度的数组(以空格分隔)
如果输入是一行以空格分隔的数字,可以通过split方法拆分字符串:

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("输入数组元素(以空格分隔): ");
String input = scanner.nextLine();
String[] parts = input.split(" ");
int[] arr = new int[parts.length];
for (int i = 0; i < parts.length; i++) {
arr[i] = Integer.parseInt(parts[i]);
}
System.out.println("输入的数组: ");
for (int num : arr) {
System.out.print(num + " ");
}
scanner.close();
}
}
使用命令行参数输入数组
通过命令行参数传递数组元素:
public class Main {
public static void main(String[] args) {
int[] arr = new int[args.length];
for (int i = 0; i < args.length; i++) {
arr[i] = Integer.parseInt(args[i]);
}
System.out.println("输入的数组: ");
for (int num : arr) {
System.out.print(num + " ");
}
}
}
运行命令示例:

java Main 1 2 3 4 5
从文件读取数组
如果数组数据存储在文件中,可以使用BufferedReader读取:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader("input.txt"));
String line = reader.readLine();
String[] parts = line.split(" ");
int[] arr = new int[parts.length];
for (int i = 0; i < parts.length; i++) {
arr[i] = Integer.parseInt(parts[i]);
}
System.out.println("输入的数组: ");
for (int num : arr) {
System.out.print(num + " ");
}
reader.close();
}
}
使用动态数据结构(如ArrayList)
如果输入长度不确定,可以先用ArrayList存储,再转换为数组:
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<Integer> list = new ArrayList<>();
System.out.println("输入数组元素(每行一个,输入非数字结束): ");
while (scanner.hasNextInt()) {
list.add(scanner.nextInt());
}
int[] arr = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
arr[i] = list.get(i);
}
System.out.println("输入的数组: ");
for (int num : arr) {
System.out.print(num + " ");
}
scanner.close();
}
}
注意事项
- 输入时需确保数据类型匹配,避免输入非数字导致异常。
- 使用
try-catch处理可能的输入异常(如NumberFormatException)。 - 对于大规模数据输入,建议使用文件或缓冲流以提高效率。






