如何将包含值的 Set 转换为字符串

use*_*566 5 java algorithm collections set hashset

public static void main(String[] args) {
        // TODO Auto-generated method stub
        String str = "abcdaa";
        dups(str);
    }
    public static void dups(String str){
        HashSet hs = new HashSet();
        char[] ch = str.toCharArray();
        for(int i=0; i < ch.length;i++){
            hs.add(ch[i]);
        }
        System.out.println(hs);
    }
Run Code Online (Sandbox Code Playgroud)

上面的代码返回输出:[a,b,c,d]

但我想将 Set 值打印到一个字符串中,以便我可以返回一个字符串值返回值如下所示:预期输出:abcd

小智 2

 public static void main(String[] args) {
        // TODO Auto-generated method stub
        String str = "abcdaa";
        dups(str);
    }

    public static void dups(String str) {
        HashSet<Character> hs = new HashSet<Character>();
        char[] ch = str.toCharArray();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < ch.length; i++) {
            if(hs.add(ch[i])){
                sb.append(ch[i]);
            }
        }
        System.out.println(sb);
    }
Run Code Online (Sandbox Code Playgroud)

编辑

public static void dups(String str) {
            HashSet<Character> hs = new HashSet<Character>();
            StringBuilder sb = new StringBuilder();
            for (Character character : str.toCharArray()) {
                if(hs.add(character)){
                    sb.append(character);
                }
            }
            System.out.println(sb);
        }
Run Code Online (Sandbox Code Playgroud)

我想不出更好的方法来做到这一点...最好使用 StringBuilder 而不是 String,检查这个答案/sf/answers/107273841/