java怎么实现输入字符串数组

java怎么实现输入字符串数组
最新回答
醉在街头

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); } }}

步骤说明

  • 创建 Scanner 对象读取输入。
  • 通过 nextInt() 获取数组长度,并用 nextLine() 清除后续换行符。
  • 使用循环逐个读取字符串并存储到数组中。
  • 最后遍历数组打印结果。
方法 2:使用 split() 方法分割输入字符串

此方法适用于一次性输入所有字符串(以空格分隔)的场景。修正点:原代码中 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); } }}

步骤说明

  • 创建 Scanner 对象读取整行输入。
  • 调用 split(" ") 方法按空格分割字符串,生成字符串数组。
  • 遍历数组并打印每个元素。
关键区别与适用场景
  • Scanner 逐个输入

    优点:可控制数组长度,适合固定数量的输入。

    缺点:代码稍冗长,需手动处理缓冲区。

  • split 分割字符串

    优点:代码简洁,适合一次性输入所有元素。

    缺点:无法直接控制数组长度,需依赖输入格式。

注意事项
  • 缓冲区问题:在 nextInt() 后必须调用 nextLine() 清除换行符,否则后续输入会被跳过。
  • 输入格式:split(" ") 仅按单个空格分割,若输入包含多个空格或制表符,需改用 split("s+")。
  • 异常处理:实际应用中应添加 try-catch 块处理非法输入(如非数字长度)。

通过上述两种方法,可根据具体需求灵活选择实现方式。