实现Java函数删除字符串中的重复字符
发布时间:2023-07-04 10:07:36
要实现Java函数删除字符串中的重复字符,可以考虑以下几种方法:
方法一:使用HashSet
1. 定义一个空的HashSet来存储字符
2. 遍历字符串中的每个字符
3. 将字符添加到HashSet中
4. 如果添加成功,说明字符是第一次出现,保留字符;如果添加失败,说明字符已经出现过,删除字符
5. 将HashSet中的字符重新拼接成字符串并返回
方法二:使用StringBuilder
1. 定义一个空的StringBuilder来存储字符
2. 遍历字符串中的每个字符
3. 判断StringBuilder中是否已经包含该字符
4. 如果已经包含,跳过该字符;如果没有包含,将字符添加到StringBuilder中
5. 将StringBuilder转换成字符串并返回
方法三:使用字符数组
1. 将字符串转换成字符数组
2. 遍历字符数组
3. 如果该字符是第一次出现,将其添加到结果数组,并将该字符添加到一个HashSet中
4. 将结果数组转换成字符串并返回
下面是使用HashSet实现的代码示例:
public static String removeDuplicates(String str) {
HashSet<Character> set = new HashSet<>();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (set.add(c)) {
sb.append(c);
}
}
return sb.toString();
}
使用StringBuilder的代码示例:
public static String removeDuplicates(String str) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (sb.indexOf(String.valueOf(c)) == -1) {
sb.append(c);
}
}
return sb.toString();
}
使用字符数组的代码示例:
public static String removeDuplicates(String str) {
char[] chars = str.toCharArray();
char[] result = new char[chars.length];
HashSet<Character> set = new HashSet<>();
int index = 0;
for (int i = 0; i < chars.length; i++) {
char c = chars[i];
if (set.add(c)) {
result[index++] = c;
}
}
return new String(result, 0, index);
}
以上就是实现Java函数删除字符串中的重复字符的三种方法,可以根据具体的需求选择适合的方法进行实现。
