Java字符串如何去重

发布时间:2025-05-02 01:43:58 作者:小樊
来源:亿速云 阅读:99

在Java中,有多种方法可以对字符串进行去重。以下是一些常见的方法:

方法一:使用HashSet

HashSet 是一个不允许有重复元素的集合。你可以将字符串中的字符添加到 HashSet 中,然后将其转换回字符串。

import java.util.HashSet;
import java.util.Set;

public class StringDeduplication {
    public static void main(String[] args) {
        String str = "hello world";
        Set<Character> set = new HashSet<>();
        StringBuilder sb = new StringBuilder();

        for (char c : str.toCharArray()) {
            if (set.add(c)) { // add() 方法返回 false 如果元素已经存在
                sb.append(c);
            }
        }

        String result = sb.toString();
        System.out.println(result); // 输出: helo wrd
    }
}

方法二:使用LinkedHashSet

LinkedHashSetHashSet 的一个子类,它不仅不允许重复元素,还保持元素的插入顺序。

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

public class StringDeduplication {
    public static void main(String[] args) {
        String str = "hello world";
        Set<Character> set = new LinkedHashSet<>();
        StringBuilder sb = new StringBuilder();

        for (char c : str.toCharArray()) {
            if (set.add(c)) {
                sb.append(c);
            }
        }

        String result = sb.toString();
        System.out.println(result); // 输出: helo wrd
    }
}

方法三:使用Java 8 Stream API

Java 8 引入了 Stream API,可以更简洁地实现字符串去重。

import java.util.stream.Collectors;

public class StringDeduplication {
    public static void main(String[] args) {
        String str = "hello world";
        String result = str.chars()
                          .distinct()
                          .mapToObj(c -> String.valueOf((char) c))
                          .collect(Collectors.joining());

        System.out.println(result); // 输出: helo wrd
    }
}

方法四:使用StringBuilder和Set

你也可以使用 StringBuilderSet 来实现字符串去重,并且保持原始顺序。

import java.util.HashSet;
import java.util.Set;

public class StringDeduplication {
    public static void main(String[] args) {
        String str = "hello world";
        Set<Character> set = new HashSet<>();
        StringBuilder sb = new StringBuilder();

        for (char c : str.toCharArray()) {
            if (set.add(c)) {
                sb.append(c);
            }
        }

        String result = sb.toString();
        System.out.println(result); // 输出: helo wrd
    }
}

这些方法都可以有效地对字符串进行去重,并且可以根据具体需求选择合适的方法。

推荐阅读:
  1. 利益golang怎么对字符串切片去重
  2. Java怎么将String字符串带括号转成List

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:Java中如何实现字符串的加密

下一篇:Java字符串如何转换为数字

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》