java中怎么将文件中的字符读取到Map集合中计算出现的字符
时间: 2024-05-02 18:21:21 浏览: 145
可以使用Java中的IO流和Map集合来实现将文件中的字符读取到Map集合中计算出现的字符。具体步骤如下:
1. 创建一个File对象,指定要读取的文件路径。
2. 创建一个FileReader对象,用于读取文件中的字符。
3. 创建一个HashMap<Character, Integer>对象,用于存储每个字符出现的次数。
4. 使用while循环读取文件中的每一个字符,并将其存储到Map集合中。
5. 如果字符在Map集合中不存在,则将该字符作为键,出现次数初始化为1作为值,存储到Map集合中。
6. 如果字符在Map集合中已经存在,则将该字符对应的值加1。
7. 最后遍历Map集合,输出每个字符出现的次数。
代码如下:
```java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.HashMap;
import java.util.Map;
public class CountCharacters {
public static void main(String[] args) throws Exception {
File file = new File("test.txt"); // 创建File对象
FileReader reader = new FileReader(file); // 创建FileReader对象
Map<Character, Integer> map = new HashMap<>(); // 创建HashMap对象
int ch;
while ((ch = reader.read()) != -1) { // 读取文件中的每一个字符
char c = (char) ch;
if (map.containsKey(c)) { // 如果字符在Map集合中已经存在
int count = map.get(c);
map.put(c, count + 1); // 将该字符对应的值加1
} else { // 如果字符在Map集合中不存在
map.put(c, 1); // 将该字符作为键,出现次数初始化为1作为值,存储到Map集合中
}
}
reader.close(); // 关闭读取器
for (Map.Entry<Character, Integer> entry : map.entrySet()) { // 遍历Map集合
System.out.println(entry.getKey() + "出现了" + entry.getValue() + "次"); // 输出每个字符出现的次数
}
}
}
```
注意:上述代码只能统计ASCII码表中的字符出现次数,如果要统计Unicode字符出现次数,需要使用Unicode编码。
阅读全文