How to remove duplicate letters from string in Java

3 Answers

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

public class MyClass {
    public static String removeDuplicateLetters(String str) {
        Set<Character> char_set = new HashSet<>();
        
        for (char ch: str.toCharArray()) {
            char_set.add(ch);
        }
        
        StringBuilder sb = new StringBuilder();
        for (Character ch: char_set) {
            sb.append(ch);
        }

        return sb.toString();
    }
    public static void main(String args[]) {
        String str = "java csharp c c++";
        
        str = removeDuplicateLetters(str);
        
        System.out.println(str);
    }
}




/*
run:

 parcsvhj+

*/

 



answered Jul 17, 2022 by avibootz
0 votes
import java.util.Arrays;

public class MyClass {
    public static String removeDuplicateLetters(char charArr[]) {
        int index = 0, len = charArr.length;
 
        for (int i = 0; i < len; i++) {
            int j;
            for (j = 0; j < i; j++) {
                if (charArr[i] == charArr[j]) {
                    break;
                }
            }
            if (j == i) {
                charArr[index++] = charArr[i];
            }
        }
        return String.valueOf(Arrays.copyOf(charArr, index));
    }
    public static void main(String args[]) {
        String str = "java csharp c c++ php python";
         
        char charArr[] = str.toCharArray();
         
        str = removeDuplicateLetters(charArr);
         
        System.out.println(str);
    }
}
 
 
 
 
/*
run:
 
jav cshrp+yton
 
*/

 



answered Jul 17, 2022 by avibootz
0 votes
public class MyClass {
    public static String removeDuplicateLetters(String str) {
        StringBuilder sb = new StringBuilder();
        
        str.chars().distinct().forEach(ch -> sb.append((char) ch));

        return sb.toString();
    }
    public static void main(String args[]) {
        String str = "java csharp c c++";
         
        str = removeDuplicateLetters(str);
         
        System.out.println(str);
    }
}
 
 
 
 
/*
run:
 
jav cshrp+
 
*/


 



answered Jan 26, 2024 by avibootz
...