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

实现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函数删除字符串中的重复字符的三种方法,可以根据具体的需求选择适合的方法进行实现。