Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

java bitmap 字符串去重


在 Java 中,要对一个字符串进行去重操作,可以使用不同的实现方式,包括使用 Set 集合、字符数组、自定义算法等等。下面我将为你介绍几种常见的实现方式,每种方式都会包含详细的步骤流程和示例代码。

方式一:使用 Set 集合

这是一种简单而有效的方式,通过将字符串转换为字符数组,然后将字符逐一添加到 Set 集合中,Set 会自动去除重复项,最后再将 Set 中的元素重新组合成字符串。

import java.util.LinkedHashSet;
import java.util.Set;

public class StringDeduplication {
    public static String removeDuplicates(String input) {
        char[] chars = input.toCharArray();
        Set<Character> charSet = new LinkedHashSet<>();

        for (char c : chars) {
            charSet.add(c);
        }

        StringBuilder result = new StringBuilder();
        for (Character c : charSet) {
            result.append(c);
        }

        return result.toString();
    }

    public static void main(String[] args) {
        String input = "aabbcc";
        String deduplicated = removeDuplicates(input);
        System.out.println(deduplicated); // Output: "abc"
    }
}

方式二:使用字符数组

这种方式通过遍历字符串中的字符,将不重复的字符添加到字符数组中,并最终将字符数组转换为字符串。

public class StringDeduplication {
    public static String removeDuplicates(String input) {
        char[] chars = input.toCharArray();
        int length = chars.length;
        if (length < 2) {
            return input;
        }

        int tail = 1;
        for (int i = 1; i < length; ++i) {
            int j;
            for (j = 0; j < tail; ++j) {
                if (chars[i] == chars[j]) {
                    break;
                }
            }
            if (j == tail) {
                chars[tail] = chars[i];
                ++tail;
            }
        }
        return new String(chars, 0, tail);
    }

    public static void main(String[] args) {
        String input = "aabbcc";
        String deduplicated = removeDuplicates(input);
        System.out.println(deduplicated); // Output: "abc"
    }
}

方式三:使用 Java 第三方库 Apache Commons Lang

如果你想使用第三方库来实现字符串去重,可以考虑使用 Apache Commons Lang 库中的 StringUtils 类的 removeDuplicates 方法。

Maven 依赖坐标:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version> <!-- 请根据最新版本选择 -->
</dependency>

Gradle 依赖坐标:

implementation 'org.apache.commons:commons-lang3:3.12.0' // 请根据最新版本选择

示例代码:

import org.apache.commons.lang3.StringUtils;

public class StringDeduplication {
    public static void main(String[] args) {
        String input = "aabbcc";
        String deduplicated = StringUtils.removeDuplicates(input);
        System.out.println(deduplicated); // Output: "abc"
    }
}

以上是几种常见的字符串去重实现方式,你可以根据自己的需求和项目情况选择其中之一来进行实现。每种方式都有其优缺点,可以根据性能和易用性来选择合适的方法。