java实现字符串去重
时间: 2024-10-17 20:08:20 浏览: 24
在Java中,有多种方法可以实现字符串去重。以下是几种常见的做法:
1. **HashSet**:使用HashSet数据结构,因为集合不允许重复元素,所以将字符串添加到HashSet中,最后返回HashSet作为结果。这会自动去除重复的字符串。
```java
String str = "hello world";
Set<String> set = new HashSet<>(Arrays.asList(str.split(" ")));
String uniqueStr = String.join(" ", set);
```
2. **HashMap**:使用HashMap存储每个字符及其出现次数,然后只保留非重复的字符构建新的字符串。
```java
String str = "hello world";
Map<Character, Integer> charCountMap = new HashMap<>();
for (char c : str.toCharArray()) {
charCountMap.put(c, charCountMap.getOrDefault(c, 0) + 1);
}
StringBuilder sb = new StringBuilder();
for (Character c : charCountMap.keySet()) {
for (int i = 0; i < charCountMap.get(c); i++) {
sb.append(c);
}
}
uniqueStr = sb.toString();
```
3. **正则表达式与replaceAll()**:通过正则表达式匹配重复的字符并替换为单个字符。
```java
String str = "hello world";
uniqueStr = str.replaceAll("\\b\\w+\\b", "$&");
```
这里`\b`代表单词边界,`\w`匹配字母、数字或下划线,`+`表示一个或多个连续的匹配项。
阅读全文