补全import java.util.LinkedHashSet; import java.util.Scanner; public class Exercise3 { public static void main(String[] args) { Scanner input = new Scanner(System.in) System.out.print("请输入一串字母:"); String str = input.nextLine() System.out.println("str=" + str); LinkedHashSet set = new LinkedHashSet(); for (int i = 0; i < str.length(); i++) { set.add( str.charAt(i) ); } System.out.print("去重后:"); String result = ""; for ( : ) { result += object; } System.out.println(result); } }
时间: 2023-06-09 16:02:38 浏览: 139
补全代码如下:
import java.util.LinkedHashSet;
import java.util.Scanner;
public class Exercise3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入一串字母:");
String str = input.nextLine();
System.out.println("str=" + str);
LinkedHashSet<Character> set = new LinkedHashSet<Character>();
for (int i = 0; i < str.length(); i++) {
set.add(str.charAt(i));
}
System.out.print("去重后:");
String result = "";
for (Character c : set) {
result += c;
}
System.out.println(result);
}
}
相关问题
import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; import java.util.Hashtable; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); Set set = new LinkedHashSet(); String a; String b = sc.nextLine(); for(int i =0 ;i <n;i++){ set.add(sc.nextLine()); } System.out.println(set.size()); for(Object obj:set){ System.out.println(obj); } sc.close(); } }
这段代码实现了从标准输入中读取n个字符串,并去重后输出不重复字符串个数和每个字符串。具体实现过程如下:
1. 导入需要使用的包,包括`java.util.Scanner`、`java.util.Set`和`java.util.LinkedHashSet`。
2. 创建一个`Scanner`对象`sc`,用于从标准输入中读取数据。
3. 从标准输入中读取一个整数`n`,表示接下来要读取的字符串个数。
4. 创建一个`LinkedHashSet`对象`set`,用于存储不重复的字符串。
5. 使用`for`循环,循环读取`n`个字符串,并将其添加到`set`中。
6. 输出不重复字符串的个数,即`set`的大小。
7. 使用`for`循环遍历`set`中的每个元素,输出每个字符串。
8. 关闭`Scanner`对象。
这段代码中使用了`LinkedHashSet`来实现去重功能,与`HashSet`相比,`LinkedHashSet`能够保持元素的插入顺序,因此在输出时能够保证按照输入顺序输出。另外,由于`LinkedHashSet`继承自`HashSet`,因此也具有去重的功能。
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); } } }哪里出错了
这段代码的问题在于,您没有在代码中引入 `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);
}
}
}
```
希望对你有所帮助!
阅读全文
相关推荐

















