欢迎访问宙启技术站
智能推送

如何在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为字符串长度,所以该函数在大多数情况下具有较高的效率。