How to remove duplicates from a string in Java

5 Answers

0 votes
import java.util.LinkedHashSet;
import java.util.Set;

class Program {
    static String removeDuplicates(String str) {
        Set<Character> lhs = new LinkedHashSet<Character>();
        
        char[] chars = str.toCharArray();
        for (char ch : chars) {
            lhs.add(ch);
        }
 
        StringBuilder sb = new StringBuilder();
        for (Character ch : lhs) {
            sb.append(ch);
        }   

        return sb.toString();
    }
    
    public static void main(String[] args) {
        String str = "abcdaaaabbbccccddddefghhhhhhxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
        
        System.out.println(removeDuplicates(str));
    }
}



/*
run:

abcdefghx

*/

 



answered Feb 8, 2019 by avibootz
edited Feb 9, 2024 by avibootz
0 votes
import java.util.LinkedHashSet;
import java.util.Set;

class Program {
    static Set<Character> removeDuplicates(String str) {
        Set<Character> lhs = new LinkedHashSet<Character>();
         
        for (char ch:str.toCharArray()) {
            lhs.add(Character.valueOf(ch));
        }

        return lhs;
    }
    
    public static void main(String[] args) {
        String str = "abcdaaaabbbccccddddefghhhhhhxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
        
        System.out.println(removeDuplicates(str));
    }
}



/*
run:

[a, b, c, d, e, f, g, h, x]

*/

 



answered Feb 8, 2019 by avibootz
edited Feb 9, 2024 by avibootz
0 votes
import java.util.LinkedHashSet;
import java.util.Iterator;
import java.util.Set;

class Program {
    static Set<Character> removeDuplicates(String str) {
        Set<Character> lhs = new LinkedHashSet<Character>();
         
        for (char ch:str.toCharArray()) {
            lhs.add(Character.valueOf(ch));
        }

        return lhs;
    }
    
    public static void main(String[] args) {
        String str = "abcdaaaabbbccccddddefghhhhhhxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
        
        Set<Character> lhs = removeDuplicates(str);
        
        Iterator it = lhs.iterator();
        while(it.hasNext()) {
            System.out.print(it.next() + " ");
        }
    }
}



/*
run:

a b c d e f g h x 

*/

 



answered Feb 8, 2019 by avibootz
edited Feb 9, 2024 by avibootz
0 votes
import java.util.LinkedHashSet;
import java.util.Iterator;
import java.util.Set;

class Program {
    static Set<Character> removeDuplicates(String str) {
        Set<Character> lhs = new LinkedHashSet<Character>();
         
        for (char ch:str.toCharArray()) {
            lhs.add(Character.valueOf(ch));
        }

        return lhs;
    }
    
    public static void main(String[] args) {
        String str = "abcdaaaabbbccccddddefghhhhhhxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
        
        Set<Character> lhs = removeDuplicates(str);
        
        str = "";
        Iterator it = lhs.iterator();
        while(it.hasNext()) {
            str += it.next();
        }    
         
        System.out.println(str);
    }
}



/*
run:

abcdefghx

*/

 



answered Feb 8, 2019 by avibootz
edited Feb 9, 2024 by avibootz
0 votes
import java.util.stream.Collectors;
import java.util.Arrays;
 
class Program {
    static String removeDuplicates(String str) {
        String noDuplicates = Arrays.stream(str.split(""))
                            .distinct()
                            .collect(Collectors.joining());
                         
        return noDuplicates;
    }
     
    public static void main(String[] args) {
        String str = "abcdaaaabbbccccddddefghhhhhhxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
         
        System.out.println(removeDuplicates(str)); 
    }
}
 
 
 
/*
run:
 
abcdefghx
 
*/

 



answered Feb 9, 2024 by avibootz
edited Feb 9, 2024 by avibootz

Related questions

1 answer 92 views
2 answers 179 views
1 answer 105 views
105 views asked Apr 20, 2020 by avibootz
1 answer 103 views
1 answer 136 views
...