Java程序使用Hashmap计算字符串中每个字符的出现次数
给定一个字符串,任务是用Java编写一个程序,打印字符串中每个字符出现的次数。
例子:
Input: str = "GeeksForGeeks"
Output:
r 1
s 2
e 4
F 1
G 2
k 2
o 1
Input: str = "Ajit"
Output:
A 1
t 1
i 1
j 1
在上一篇文章中已经讨论了使用频率 []数组的方法。在这个程序中,讨论了在Java中使用 Hashmap 的方法。
- 在Java中声明一个 {char, int} 的 Hashmap。
- 在字符串中遍历,检查 Hashmap 是否已经包含遍历的字符。
- 如果存在,则使用 Hashmap 中的 get() 和 put()函数增加其计数。
- 遍历完成后,在 Hashmap 中遍历并打印字符及其频率。
下面是上述方法的实现。
Java
// Java program to count frequencies of
// characters in string using Hashmap
import java.io.*;
import java.util.*;
class OccurenceOfCharInString {
static void characterCount(String inputString)
{
// Creating a HashMap containing char
// as a key and occurrences as a value
HashMap charCountMap
= new HashMap();
// Converting given string to char array
char[] strArray = inputString.toCharArray();
// checking each char of strArray
for (char c : strArray) {
if (charCountMap.containsKey(c)) {
// If char is present in charCountMap,
// incrementing it's count by 1
charCountMap.put(c, charCountMap.get(c) + 1);
}
else {
// If char is not present in charCountMap,
// putting this char to charCountMap with 1 as it's value
charCountMap.put(c, 1);
}
}
// Printing the charCountMap
for (Map.Entry entry : charCountMap.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
// Driver Code
public static void main(String[] args)
{
String str = "Ajit";
characterCount(str);
}
}
输出:
A 1
t 1
i 1
j 1