Java
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter a string: ");
String s = sc.nextLine();
Map<Character, Integer> freq = new LinkedHashMap<>();
for (char c : s.toCharArray()) {
freq.put(c, freq.getOrDefault(c, 0) + 1);
}
for (Map.Entry<Character, Integer> e : freq.entrySet()) {
System.out.println(e.getKey() + " -> " + e.getValue());
}
sc.close();
}
}Output
Enter a string: aabccc a -> 2 b -> 1 c -> 3
We use a LinkedHashMap to keep counts in the order of first appearance.