In this article we will learn to implement a Java program to print the frequency of characters in a string. A Java program is provided below reads the string and gives the frequency of each character (number of times a character is repeated).
This java program reads a string from the user, calculates frequency of each character in the strings and displays the character followed by its frequency in ascending order.
We can maintain the count of each character by using the Map interface from collections framework. To maintain the ascending order, we can use TreeMap class.
The program is as follows:
import java.util.*;
public class Driver
{
public static void main(String[] args)
{
System.out.println("Enter input: ");
Scanner input = new Scanner(System.in);
String s = input.next();
input.close();
TreeMap<Character, Integer> list = new TreeMap<Character, Integer>();
for(Character c : s.toCharArray())
{
if(list.containsKey(c))
{
list.put(c, list.get(c)+1);
}
else
{
list.put(c, 1);
}
}
for(Map.Entry e: list.entrySet())
{
//if((int)e.getValue() == 1)
System.out.println(e.getKey() + " - " + e.getValue());
}
}
}
Input and output for the above program is as follows:
Input:
Enter input:
yaadccdekp
Output:
a - 2
c - 2
d - 2
e - 1
k - 1
p - 1
y - 1
For displaying in insertion order, we can use LinkedHashMap class instead of TreeMap.
Suryateja Pericherla, at present is a Research Scholar (full-time Ph.D.) in the Dept. of Computer Science & Systems Engineering at Andhra University, Visakhapatnam. Previously worked as an Associate Professor in the Dept. of CSE at Vishnu Institute of Technology, India.
He has 11+ years of teaching experience and is an individual researcher whose research interests are Cloud Computing, Internet of Things, Computer Security, Network Security and Blockchain.
He is a member of professional societies like IEEE, ACM, CSI and ISCA. He published several research papers which are indexed by SCIE, WoS, Scopus, Springer and others.
Leave a Reply