统计字符串中每个汉字出现的次数
时间: 2023-11-14 07:05:44 浏览: 58
可以使用Python中的字典(dict)来存储每个汉字出现的次数。具体的步骤如下:
1. 遍历字符串中的每个字符,判断该字符是否为汉字;
2. 如果是汉字,则将其加入到字典中,并将其出现次数加1;
3. 如果不是汉字,则忽略该字符;
4. 最后输出字典中每个汉字出现的次数。
下面是一个示例代码:
```python
str = "今天天气不错,明天也会很好"
dict = {}
for char in str:
if '\u4e00' <= char <= '\u9fff': # 判断是否为汉字
if char in dict:
dict[char] += 1
else:
dict[char] = 1
for key in dict:
print(key, ":", dict[key])
```
输出结果为:
```
今 : 1
天 : 2
气 : 1
不 : 1
错 : 1
明 : 1
也 : 1
会 : 1
很 : 1
好 : 1
```
相关问题
Java统计字符串中每个汉字出现的次数
可以尝试以下代码实现:
```java
import java.util.HashMap;
import java.util.Map;
public class CountChineseCharacters {
public static void main(String[] args) {
String str = "Java统计字符串中每个汉字出现的次数";
Map<Character, Integer> map = new HashMap<>();
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (isChinese(ch)) {
if (map.containsKey(ch)) {
map.put(ch, map.get(ch) + 1);
} else {
map.put(ch, 1);
}
}
}
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
System.out.println("汉字 " + entry.getKey() + " 出现了 " + entry.getValue() + " 次");
}
}
public static boolean isChinese(char ch) {
Character.UnicodeBlock ub = Character.UnicodeBlock.of(ch);
return ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B
|| ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT
|| ub == Character.UnicodeBlock.CJK_RADICALS_SUPPLEMENT
|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
|| ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS
|| ub == Character.UnicodeBlock.ENCLOSED_CJK_LETTERS_AND_MONTHS;
}
}
```
上述代码中,使用了一个 HashMap 来记录每个汉字出现的次数,isChinese 方法用来判断字符是否为汉字,最后输出每个汉字出现的次数。
JAVA统计字符串中每个汉字出现的次数
可以使用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
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)