如何在Java中编写一个函数来删除字符串中的重复字符?
发布时间:2023-06-20 01:11:14
理解题目:
在Java中,字符串是一个基本的数据类型,表示为一个对象。字符串由字符组成,可能会出现重复的字符。编写一个函数,可删除字符串中重复的字符。
思路:
1. 使用HashSet数据结构存储非重复的字符。
2. 遍历字符串中的每一个字符,如果该字符不在HashSet中,将该字符添加到HashSet中。
3. 最后将哈希集转换回字符串。
实现代码:
public static String removeDuplicates(String input) {
char[] chars = input.toCharArray();
Set<Character> charSet = new HashSet<>();
StringBuilder sb = new StringBuilder();
for (char c : chars) {
if (!charSet.contains(c)) {
charSet.add(c);
sb.append(c);
}
}
return sb.toString();
}
使用:
String input = "hello world"; String output = removeDuplicates(input); System.out.println(output);
输出:
helo wrd
解释:
该函数将字符串"hello world"作为输入,遍历字符串中的每个字符。如果在hashset中不存在该字符,就将该字符添加到哈希集中,并将其追加到StringBuilder中。最后返回StringBuilder的字符串表示形式,即结果字符串"heo wrd"。
总结:
该函数使用了HashSet数据结构,具有O(1)的添加和查找复杂度。函数复杂度为O(n),其中n为字符串长度,所以该函数在大多数情况下具有较高的效率。
