How to remove odd frequency characters from a string in Java

2 Answers

0 votes
import java.util.HashMap; 
 
public class Main {
    static String remove_odd_frequency_characters(String s) { 
        HashMap<Character, Integer> hm = new HashMap<>(); 
           
        for (int i = 0; i < s.length(); i++) { 
            if (hm.containsKey(s.charAt(i))) {
                hm.put(s.charAt(i),  
                hm.get(s.charAt(i)) + 1); 
            }
            else {
                hm.put(s.charAt(i), 1); 
            }    
        } 
       
        String new_string = ""; 
 
        for (int i = 0; i < s.length(); i++) { 
            if (hm.get(s.charAt(i)) % 2 != 0) {
                continue; 
            }
            new_string = new_string + s.charAt(i); 
        } 
       
        return new_string; 
    } 
    
    public static void main(String args[]) {
        String s = "java programming version 11"; 
 
        String new_string = remove_odd_frequency_characters(s);
        
        System.out.println(new_string); 
    }
}
 

 
/*
run:
 
vogmmingvion11
 
*/

 



answered Jan 31, 2019 by avibootz
edited Nov 19, 2024 by avibootz
0 votes
import java.util.HashMap;

public class Main {
    static String remove_odd_frequency_characters(String s) { 
       HashMap<Character, Integer> frequencyMap = new HashMap<>();
       char[] charray = s.toCharArray();

        // Count the frequency of each character
        for (char ch : charray) {
            frequencyMap.put(ch, frequencyMap.getOrDefault(ch, 0) + 1);
        }

        // Build the result string excluding characters with odd frequencies
        StringBuilder result = new StringBuilder();
        for (char ch : charray) {
            if (frequencyMap.get(ch) % 2 == 0) {
                result.append(ch);
            }
        }

        return result.toString(); 
    } 
    
    public static void main(String[] args) {
        String s = "java programming version 11"; 
        
        String new_string = remove_odd_frequency_characters(s);
         
        System.out.println(new_string); 
    }
}

 
/*
run:
 
vogmmingvion11
 
*/
  
 

 



answered Nov 19, 2024 by avibootz

Related questions

1 answer 222 views
1 answer 220 views
1 answer 207 views
1 answer 195 views
1 answer 204 views
1 answer 195 views
...