How to count the occurrences of each letter in char array with Java

2 Answers

0 votes
public class CountLettersInCharArray {
    public static int[] count_letters(char[] arr) {
        int[] count_arr = new int[26];
         
        for (int i = 0; i < arr.length; i++) {
            count_arr[arr[i] - 'a']++;
        }
        return count_arr;
    }
    public static void print(int[] count_arr) {
        for (int i = 0; i < count_arr.length; i++) {
            if (count_arr[i] != 0) {
                System.out.println( (char)(i + 'a') + " : " + count_arr[i]);
            }
        }
    }
    public static void main(String args[]) {
        char[] arr = {'j', 'a', 'v', 'a', 'c', 'p', 'h', 'p', 'p', 'y', 't', 'h', 'o', 'n'}; 
 
        int[] count_arr = count_letters(arr);
         
        print(count_arr);
    }
}


 
/*
run:
     
a : 2
c : 1
h : 2
j : 1
n : 1
o : 1
p : 3
t : 1
v : 1
y : 1
     
*/

 



answered Jul 14, 2019 by avibootz
edited Mar 2 by avibootz
0 votes
import java.util.HashMap;

public class CountLettersInCharArray {
    public static void main(String[] args) {
        char[] charArray = {'j', 'a', 'v', 'a', 'c', 'p', 'h', 'p', 'p', 'y', 't', 'h', 'o', 'n'}; 
        HashMap<Character, Integer> letterCount = new HashMap<>();

        for (char ch : charArray) {
            letterCount.put(ch, letterCount.getOrDefault(ch, 0) + 1);
        }

        for (HashMap.Entry<Character, Integer> entry : letterCount.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
    }
}


 
/*
run:

p: 3
a: 2
c: 1
t: 1
v: 1
h: 2
y: 1
j: 1
n: 1
o: 1
     
*/

 



answered Mar 2 by avibootz
...