java:删除字符串str中重复的汉字
时间: 2024-10-01 15:11:19 浏览: 30
在Java中,删除字符串str中重复的汉字可以采用以下几种方法,这里提供一种基于HashMap的简单解决方案:
```java
import java.util.HashMap;
import java.util.Map;
public class RemoveDuplicatesInString {
public String removeDuplicates(String str) {
// 创建一个HashMap存储每个字符及其索引位置
Map<Character, Integer> charMap = new HashMap<>();
// 创建StringBuilder用于构建新字符串,减少性能开销
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
// 如果字符未出现过,或已出现但索引大于当前索引,说明是第一次遇到
if (!charMap.containsKey(c) || charMap.get(c) > i) {
// 添加到map并更新索引
charMap.put(c, i);
// 添加到StringBuilder
sb.append(c);
}
}
return sb.toString();
}
public static void main(String[] args) {
RemoveDuplicatesInString remover = new RemoveDuplicatesInString();
String str = "我喜欢喜欢你";
System.out.println(remover.removeDuplicates(str)); // 输出 "我喜欢你"
}
}
```
这个方法遍历输入字符串,如果字符首次出现或其之前的位置已经被覆盖,就将其添加到新字符串sb中。通过这种方式,最终得到的字符串就不会包含重复的汉字。
阅读全文