用Java set 集合写一个代码,返回一个新字符串,要求新字符串删除原字符串中连续且重复的字符,重复的字符只保留一个,只允许用String
时间: 2024-03-10 18:50:19 浏览: 15
好的,下面是用 Java Set 集合实现的代码:
```java
import java.util.LinkedHashSet;
import java.util.Set;
public class RemoveDuplicateChars {
public static void main(String[] args) {
String str = "aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz";
String result = removeDuplicates(str);
System.out.println("Original string: " + str);
System.out.println("String after removing duplicates: " + result);
}
public static String removeDuplicates(String str) {
if (str == null || str.isEmpty()) {
return str;
}
Set<Character> set = new LinkedHashSet<>();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
set.add(c);
}
StringBuilder sb = new StringBuilder();
for (char c : set) {
sb.append(c);
}
return sb.toString();
}
}
```
这个程序定义了一个名为 `removeDuplicates` 的方法,该方法接受一个字符串作为参数,并返回一个新字符串,其中删除了原字符串中的连续且重复字符。在 `removeDuplicates` 方法中,我们首先检查传入的字符串是否为空或为空字符串,如果是,我们直接返回该字符串。否则,我们创建一个 `LinkedHashSet` 对象 `set`,并遍历原字符串的每个字符,将其添加到 `set` 中。由于 `LinkedHashSet` 会保留元素的插入顺序,因此我们可以确保新字符串中的字符顺序与原字符串中的顺序相同。接下来,我们创建一个 `StringBuilder` 对象 `sb`,并遍历 `set` 中的每个字符,将其添加到 `sb` 中。最后,我们将 `sb` 转换为字符串并返回它。