Java数组:键盘输入与数组元素存储详解322


Java 数组是存储相同数据类型元素的有序集合。在实际编程中,我们经常需要从键盘输入数据,并将这些数据存储到Java数组中。本文将详细讲解如何使用Java代码实现键盘录入数据并将其存入数组,并涵盖一些错误处理和最佳实践。

一、基本方法:使用Scanner类

Java的`Scanner`类是读取用户输入的常用工具。我们可以利用`Scanner`类读取键盘输入,并将输入的数据存储到数组中。以下是一个简单的例子,演示如何从键盘输入5个整数,并将它们存储到一个整数数组中:```java
import ;
public class ArrayInput {
public static void main(String[] args) {
Scanner scanner = new Scanner();
int[] numbers = new int[5];
("请输入5个整数:");
for (int i = 0; i < 5; i++) {
("整数 " + (i + 1) + ": ");
while (!()) {
("输入无效,请输入整数:");
(); // 清除无效输入
}
numbers[i] = ();
}
("你输入的数组为:");
for (int number : numbers) {
(number + " ");
}
();
}
}
```

这段代码首先创建了一个`Scanner`对象,然后声明一个长度为5的整数数组`numbers`。程序使用一个`for`循环提示用户输入5个整数。`while (!())`语句用于处理无效输入,例如输入字符而不是整数。如果输入无效,程序会提示用户重新输入,并使用`()`清除无效输入。最后,程序将输入的整数存储到数组中,并打印出数组的内容。

二、动态数组:使用ArrayList

当我们不知道需要存储多少个元素时,使用固定长度的数组可能会导致数组越界异常。在这种情况下,`ArrayList`是一个更好的选择。`ArrayList`是动态数组,可以根据需要自动调整大小:```java
import ;
import ;
public class ArrayListInput {
public static void main(String[] args) {
Scanner scanner = new Scanner();
ArrayList numbers = new ArrayList();
("请输入整数(输入非整数结束):");
while (()) {
(());
}
("你输入的数组为:");
for (int number : numbers) {
(number + " ");
}
();
}
}
```

这段代码使用`ArrayList`来存储整数。程序会一直循环读取输入,直到用户输入一个非整数为止。 `ArrayList`会自动管理数组的大小,无需预先指定数组长度。

三、处理不同数据类型

以上例子只处理了整数输入。 如果需要处理其他数据类型,例如字符串或浮点数,只需要修改`Scanner`的读取方法即可。例如,读取字符串可以使用`()`,读取浮点数可以使用`()`。```java
import ;
public class StringArrayInput {
public static void main(String[] args) {
Scanner scanner = new Scanner();
String[] strings = new String[3];
("请输入3个字符串:");
for (int i = 0; i < 3; i++) {
("字符串 " + (i + 1) + ": ");
strings[i] = ();
}
("你输入的数组为:");
for (String str : strings) {
(str + " ");
}
();
}
}
```

四、异常处理

虽然我们使用了`hasNextInt()`来处理无效的整数输入,但更健壮的代码应该使用`try-catch`块来处理潜在的`InputMismatchException`异常。这可以防止程序因为无效输入而崩溃。```java
import ;
public class RobustArrayInput {
public static void main(String[] args) {
Scanner scanner = new Scanner();
int[] numbers = new int[5];
("请输入5个整数:");
for (int i = 0; i < 5; i++) {
try {
numbers[i] = ();
} catch ( e) {
("输入无效,请输入整数:");
(); // 清除无效输入
i--; // 重新输入当前元素
}
}
("你输入的数组为:");
for (int number : numbers) {
(number + " ");
}
();
}
}
```

这段代码使用了`try-catch`块来捕获`InputMismatchException`异常,并提示用户重新输入。`i--`确保在发生异常时不会跳过当前元素。

五、总结

本文详细介绍了如何使用Java从键盘输入数据并将其存储到数组中,包括使用`Scanner`类、`ArrayList`类以及处理不同数据类型和异常的方法。 选择使用固定长度数组还是`ArrayList`取决于具体需求。 良好的异常处理能够使程序更加健壮,避免因无效输入而导致程序崩溃。 记住在使用完`Scanner`后调用`()`方法来释放资源。

2025-06-11


上一篇:Java 字符串处理深度解析:从基础到高级应用

下一篇:Java 代码重构最佳实践:提升代码质量与可维护性