How to Take Multiple String Input in Java Using Scanner

2025年3月17日 | 阅读 3 分钟

在 Java 中,Scanner 是一个提供读取各种基本类型输入的类。它定义在 java.util 包中。在本节中,我们将学习如何使用 Scanner 类在 Java 中读取多个字符串输入

在使用 Scanner 类之前,我们必须导入该包。例如,如果我们想读取一个字符串或多个字符串,我们使用 nextLine() 方法。这是使用 Scanner 类的 nextLine() 方法在 Java读取多个字符串输入的唯一方法

Java nextLine() 方法

nextLine() 方法在返回当前行后会移动扫描器到下一行。它会读取包含单词之间空格的字符串输入。它不接受任何参数。它返回被跳过的字符串(行)。

语法

如果找不到行,该方法会抛出 NoSuchElementException,如果扫描器已关闭,则抛出 IllegalStateException

让我们创建一个读取多个字符串输入的程序。

在下面的示例中,我们创建了一个 Scanner 类的实例。之后,我们调用了 nextLine() 方法来读取字符串输入。最后,我们使用 for-each 循环打印了我们输入的所有字符串。

MultipleStringInputExample1.java

输出

Please enter the number of strings you want to enter: 5
Robert
Harry
Charlie
Thomas
David

You have entered: 
Robert
Harry
Charlie
Thomas
David

让我们看另一个例子。

在下面的示例中,我们使用了 Scanner 类。但没有使用 nextLine() 方法。而是使用了 forEachRemaining() 方法。

这是一个Java Interface Spliterator,用于在当前线程中按顺序对每个元素执行指定的操作。它会一直执行,直到所有元素都被处理或操作抛出异常。它不返回任何内容。

语法

如果操作为 null,它会抛出 NullPointerException

MultipleStringInputExample2.java

输出

Enter the elements: 
Java
Java
Python
Python
Pascal
Pascal
C++
C++

使用 Lambda 表达式

我们也可以使用 lambda 表达式以以下方式编写上述程序。

MultipleStringInputExample3.java

输出

Canada
Canada
America
America
Russia
Russia
France
France

下面的示例也读取了多个字符串输入。但在本示例中,我们使用了另一个方法 hasNextLine()。如果此扫描器还有下一行输入,该方法返回 true。while 循环将一直执行,直到 hasNextLine() 方法返回 false。

MultipleStringInputExample4.java

输出

Apple
Apple
Grapes
Grapes
Watermelon
Watermelon

在下面的示例中,我们使用了一个执行 n 次的 for 循环。在循环内部,我们调用了 nextLine() 方法来读取字符串输入。

MultipleStringInputExample5.java

输出

Enter the elements: 
Data Structure
Data Structure
Web Services
Web Services
Web Designing 
Web Designing