2021-11-08 16:51:29
在 Java 中,可以通过以下两种方法实现输入字符串数组,具体实现及修正后的代码如下:
方法 1:使用 Scanner 类逐个输入字符串此方法适用于需要明确指定数组长度并逐个输入元素的场景。修正点:原代码中 scanner.nextLine() 在 nextInt() 后会直接读取换行符,导致第一个字符串输入被跳过。需在 nextInt() 后添加 scanner.nextLine() 清除缓冲区。
import java.util.Scanner;public class InputStringArray { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 获取输入的字符串数组长度 System.out.println("请输入数组长度:"); int length = scanner.nextInt(); scanner.nextLine(); // 清除缓冲区中的换行符 // 创建一个字符串数组来存储输入的字符串 String[] array = new String[length]; // 逐个输入字符串 for (int i = 0; i < length; i++) { System.out.println("请输入第" + (i + 1) + "个字符串:"); array[i] = scanner.nextLine(); } // 打印输入的字符串数组 System.out.println("输入的字符串数组为:"); for (String str : array) { System.out.println(str); } }}步骤说明:
此方法适用于一次性输入所有字符串(以空格分隔)的场景。修正点:原代码中 input.nextLine() 应为 scanner.nextLine(),且需通过 split(" ") 按空格分割字符串。
import java.util.Scanner;import java.util.Arrays;public class InputStringArray { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 获取输入的字符串(以空格分隔) System.out.println("请输入字符串(以空格分隔):"); String input = scanner.nextLine(); // 使用 split() 方法将字符串按空格分割为数组 String[] array = input.split(" "); // 打印输入的字符串数组 System.out.println("输入的字符串数组为:"); for (String str : array) { System.out.println(str); } }}步骤说明:
优点:可控制数组长度,适合固定数量的输入。
缺点:代码稍冗长,需手动处理缓冲区。
优点:代码简洁,适合一次性输入所有元素。
缺点:无法直接控制数组长度,需依赖输入格式。
通过上述两种方法,可根据具体需求灵活选择实现方式。