public class Z523 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int English = scanner.nextInt(); Set<String>set = new LinkedHashSet<>(); for (int i =0 ; i<English;i++){ String Word = scanner.next(); set.add(Word); } for (String Word: set){ System.out.println(Word); } } }哪里出错了
时间: 2023-12-03 20:43:39 浏览: 79
这段代码的问题在于,您没有在代码中引入 `java.util.*` 包。因此,您需要添加以下代码行:
```java
import java.util.*;
```
然后,您还需要检查输入是否正确。您的代码期望第一行输入一个整数,表示接下来有多少个单词。如果输入不是整数,这将导致 `InputMismatchException` 异常。因此,您可以在读取整数之前添加以下代码,以确保输入正确:
```java
if (!scanner.hasNextInt()) {
System.out.println("Invalid input");
return;
}
```
最后,您需要确保您的代码能够处理包含空格的单词。因此,您应该使用 `scanner.nextLine()` 而不是 `scanner.next()` 来读取单词。这将读取一行并返回其中的第一个单词。因此,您需要将以下代码:
```java
String Word = scanner.next();
```
更改为:
```java
String Word = scanner.nextLine().trim();
```
这将读取一行,并删除前导和尾随空格,然后返回其中的第一个单词。因此,您的完整代码应该如下所示:
```java
import java.util.*;
public class Z523 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
if (!scanner.hasNextInt()) {
System.out.println("Invalid input");
return;
}
int English = scanner.nextInt();
scanner.nextLine();
Set<String> set = new LinkedHashSet<>();
for (int i = 0; i < English; i++) {
String Word = scanner.nextLine().trim();
set.add(Word);
}
for (String Word : set) {
System.out.println(Word);
}
}
}
```
希望对你有所帮助!
阅读全文