Java中读取数组输入是一个常见的任务,特别是在编写控制台应用程序或处理用户输入时。以下是一些简单而有效的方法来读取数组输入。
方法一:使用Scanner类
Scanner类是Java标准库中用于读取用户输入的一个便捷类。以下是如何使用Scanner来读取数组输入的步骤:
导入
Scanner类:import java.util.Scanner;创建
Scanner对象:Scanner scanner = new Scanner(System.in);读取用户输入的行,然后分割成数组:
System.out.println("请输入用空格分隔的元素数量:"); int size = scanner.nextInt(); scanner.nextLine(); // 消费掉剩余的换行符 String[] input = scanner.nextLine().split(" ");转换字符串数组到其他类型(例如,整数数组):
int[] array = new int[input.length]; for (int i = 0; i < input.length; i++) { array[i] = Integer.parseInt(input[i]); }关闭
Scanner对象:scanner.close();
方法二:使用Arrays类
Arrays类提供了一些用于数组的工具方法。你可以使用Arrays.asList()方法将字符串数组转换为列表,然后使用toArray()方法将其转换回数组。
import java.util.Arrays;
import java.util.Scanner;
import java.util.List;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用空格分隔的元素:");
List<String> list = Arrays.asList(scanner.nextLine().split(" "));
Integer[] array = list.toArray(new Integer[0]);
scanner.close();
// 输出数组内容以验证
for (Integer i : array) {
System.out.println(i);
}
}
}
方法三:使用循环和BufferedReader
如果你不想使用Scanner类,也可以使用BufferedReader来逐个字符地读取输入,并将其存储到数组中。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println("请输入用空格分隔的元素数量:");
int size = Integer.parseInt(reader.readLine());
int[] array = new int[size];
System.out.println("请输入元素:");
String line = reader.readLine();
String[] input = line.split(" ");
for (int i = 0; i < input.length; i++) {
array[i] = Integer.parseInt(input[i]);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 输出数组内容以验证
for (int i : array) {
System.out.println(i);
}
}
}
总结
选择哪种方法取决于你的具体需求和偏好。Scanner类通常是首选,因为它易于使用且功能强大。如果你需要更精细的控制或对性能有特别要求,BufferedReader可能更适合。无论哪种方法,关键是确保你的输入处理逻辑正确,能够处理错误和异常情况。
