JAVA统计字符串中每个汉字出现的次数
时间: 2023-11-16 18:06:37 浏览: 184
JAVA 统计字符串中中文,英文,数字,空格,特殊字符的个数
5星 · 资源好评率100%
可以使用Java的HashMap来统计每个汉字出现的次数,具体实现步骤如下:
1. 将字符串转换为字符数组。
2. 遍历字符数组,判断每个字符是否为汉字。
3. 如果是汉字,则将其存入HashMap中,如果已经存在则将其出现次数加1。
4. 最后遍历HashMap,输出每个汉字及其出现次数。
以下是一个简单的示例代码:
```java
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
String str = "我是一个中国人,我爱我的祖国。";
char[] charArray = str.toCharArray();
// 创建HashMap,用于统计每个汉字出现的次数
HashMap<Character, Integer> map = new HashMap<>();
// 遍历字符数组,统计汉字出现次数
for (char c : charArray) {
if (isChinese(c)) {
if (map.containsKey(c)) {
map.put(c, map.get(c) + 1);
} else {
map.put(c, 1);
}
}
}
// 输出每个汉字及其出现次数
for (Character key : map.keySet()) {
System.out.println(key + ":" + map.get(key));
}
}
// 判断字符是否为汉字
public static boolean isChinese(char c) {
Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
return ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION
|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
|| ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS;
}
}
```
输出结果为:
```
国:1
我:2
中:1
爱:1
的:2
人:1
祖:1
```
阅读全文