java 统计String中某字符出现的次数
时间: 2024-05-15 19:17:06 浏览: 17
可以通过遍历字符串中的每个字符,判断是否等于目标字符,然后计数器加一的方式来统计目标字符出现的次数。代码如下:
```java
public static int countChar(String str, char ch) {
int count = 0;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == ch) {
count++;
}
}
return count;
}
```
这里的参数 `str` 是要统计的字符串,`ch` 是要统计的目标字符。遍历字符串中的每个字符可以使用 `charAt()` 方法,判断是否等于目标字符可以使用 `==` 运算符。最后统计出的次数即为目标字符在字符串中出现的次数。
相关问题
用Java统计文件中中文字符出现次数并排序
下面是一个Java程序,可以实现统计文本文件中中文字符出现次数并按照出现次数排序的功能:
```java
import java.io.*;
import java.util.*;
public class ChineseCharCount {
public static void main(String[] args) {
String filename = "test.txt"; // 待统计的文件名
Map<Character, Integer> charMap = new HashMap<>(); // 用于存储中文字符和出现次数的映射
try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(filename), "UTF-8"))) {
String line;
while ((line = reader.readLine()) != null) {
for (int i = 0; i < line.length(); i++) {
char c = line.charAt(i);
if (isChineseChar(c)) {
Integer count = charMap.get(c);
if (count == null) {
charMap.put(c, 1);
} else {
charMap.put(c, count + 1);
}
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
List<Map.Entry<Character, Integer>> charList = new ArrayList<>(charMap.entrySet()); // 将映射转换为列表
charList.sort((e1, e2) -> e2.getValue().compareTo(e1.getValue())); // 按照出现次数从大到小排序
for (Map.Entry<Character, Integer> entry : charList) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
// 判断一个字符是否为中文字符
private static boolean isChineseChar(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;
}
}
```
程序首先读取指定的文本文件,逐行遍历文件中的每个字符,如果一个字符是中文字符,则将其加入到一个映射中,并记录其出现次数。最后,将映射转换为列表并按照出现次数从大到小排序,输出结果。
程序中使用了`isChineseChar`方法来判断一个字符是否为中文字符,该方法判断的依据是该字符所属的`UnicodeBlock`是否为中文字符所使用的`UnicodeBlock`。
String 统计某个字符出现的次数
要统计某个字符在字符串中出现的次数,可以按照以下步骤进行操作:
1.键盘录入一个字符串,用Scanner实现。
2.定义一个计数器变量count,初始值为0。
3.遍历字符串,得到每一个字符。
4.判断该字符是否等于目标字符,如果是,则计数器变量count+1。
5.遍历完字符串后,count的值即为目标字符在字符串中出现的次数。
下面是Java代码示例:
```java
import java.util.Scanner;
public class CountChar {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String str = sc.nextLine();
System.out.print("请输入要统计的字符:");
char ch = sc.next().charAt(0);
int count = 0;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == ch) {
count++;
}
}
System.out.println("字符 " + ch + " 在字符串中出现的次数为:" + count);
}
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)