Java字符串去重
时间: 2023-06-30 15:25:58 浏览: 51
可以使用Set数据结构来实现Java字符串去重,具体代码如下:
```java
String str = "aaabbbccc";
Set<Character> set = new HashSet<>();
for (int i = 0; i < str.length(); i++) {
set.add(str.charAt(i));
}
StringBuilder sb = new StringBuilder();
for (Character c : set) {
sb.append(c);
}
String result = sb.toString(); // 去重后的字符串
```
上述代码中,首先将字符串中的每一个字符添加到Set中,由于Set会自动去重,所以最后Set中只会保留不重复的字符。然后再将Set中的字符按顺序拼接起来,即可得到去重后的字符串。
相关问题
Java字符串去重的方法
Java字符串去重可以使用HashSet或LinkedHashSet来实现。具体方法可以按以下步骤来实现:
1. 将字符串转换为字符数组或者将其按字符进行遍历
2. 使用HashSet或LinkedHashSet来存储不重复的字符
3. 将HashSet或LinkedHashSet转换为字符串即可。
代码示例:
```
String str = "hello world";
char[] charArray = str.toCharArray(); // 将字符串转换为字符数组
Set<Character> set = new HashSet<>(); // 使用HashSet来存储不重复的字符
for (char c : charArray) {
set.add(c);
}
StringBuilder sb = new StringBuilder();
for (Character c : set) {
sb.append(c);
}
String result = sb.toString(); // 将HashSet转换为字符串
System.out.println(result); // 输出结果为:helo wrd
```
注意:使用HashSet时,无法保证字符的顺序,如果要保证字符顺序,可以使用LinkedHashSet。
java字符串去重工具类
以下是一个基于Java的字符串去重工具类的示例:
```java
import java.util.LinkedHashSet;
import java.util.Set;
public class StringUtil {
/**
* 去重字符串中的重复字符并保持原有顺序
* @param str 待去重的字符串
* @return 去重后的字符串
*/
public static String removeDuplicateChars(String str) {
if (str == null || str.length() < 2) {
return str;
}
Set<Character> set = new LinkedHashSet<>();
for (char c : str.toCharArray()) {
set.add(c);
}
StringBuilder sb = new StringBuilder();
for (Character c : set) {
sb.append(c);
}
return sb.toString();
}
}
```
使用示例:
```java
String str = "hello world";
String result = StringUtil.removeDuplicateChars(str);
System.out.println(result); // 输出: helo wrd
```
该示例使用了LinkedHashSet来保持原有的字符顺序,并且避免了使用StringBuilder来去重字符串中的重复字符的重复操作。