Here we will show you two solutions to count characters from the given string in java.
Solution #1 : Using Map
CharacterCountUsingMap.java
package com.javacodepoint.programs;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
public class CharacterCountUsingMap {
//Main method
public static void main(String[] args) {
// String variable to take a string input from the user
String str = null;
// Map variable to store the count
Map<Character,Integer> map = new HashMap<>();
// Creating scanner class object for reading user input
Scanner sc = new Scanner(System.in);
System.out.println("Please enter a string to count the characters: ");
// reading the string input
str = sc.next();
// making string in lowercase
str = str.toLowerCase();
//iterate the string from beginning to end
for(int i=0; i<str.length(); i++) {
// pick the character
char ch=str.charAt(i);
if(map.containsKey(ch)) {
//if character exist, increase count by 1
int count=map.get(ch);
map.put(ch, count + 1);
}else {
//if character doesn't exist, initialize with 1
map.put(ch, 1);
}
}
//Printing the final result by iterating the map
Iterator<Character> it= map.keySet().iterator();
while(it.hasNext()) {
char ch = it.next();
int count = map.get(ch);
System.out.println(ch+" => "+count);
}
}
}
OUTPUT:
Please enter a string to count the characters:
javacodepoint
p => 1
a => 2
c => 1
d => 1
t => 1
e => 1
v => 1
i => 1
j => 1
n => 1
o => 2
Solution #2 : Using Array
CharacterCountUsingArray.java
package com.javacodepoint.programs;
import java.util.Scanner;
public class CharacterCountUsingArray {
public static void main(String[] args) {
// String variable to take a string input from the user
String str = null;
// count array to hold the character count
int count[] = new int[26];
// Creating scanner class object for reading user input
Scanner sc = new Scanner(System.in);
System.out.println("Please enter a string to count the characters: ");
// reading the string input
str = sc.next();
// making string in lowercase
str = str.toLowerCase();
// iterate the string from beginning to end
for (int i = 0; i < str.length(); i++) {
// pick the character and convert in ASCII no
int ch = (int) str.charAt(i);
// 97 is the ascii value for a
count[ch - 97] = count[ch - 97] + 1;
}
// Printing the final result
for (int i = 0; i < count.length; i++) {
int totalCount = count[i];
//checking the character was present in string or not
if (totalCount > 0) {
char ch = (char) (97 + i);
System.out.println(ch + " => " + totalCount);
}
}
}
}
OUTPUT:
Please enter a string to count the characters:
apple
a => 1
e => 1
l => 1
p => 2