使用Java语言实现随机产生1000个小写英文字母,并写入到“leeter.dat”,读读取该文件,统计每个字母出现了几次,并打印出来文件里面功能
时间: 2024-03-22 10:39:34 浏览: 74
好的,我了解了你的问题。下面是Java代码实现:
```java
import java.io.*;
import java.util.*;
public class CountLetters {
public static void main(String[] args) {
// 产生1000个小写英文字母
Random random = new Random();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 1000; i++) {
char ch = (char) (random.nextInt(26) + 'a');
sb.append(ch);
}
// 将字母写入文件
String filename = "letter.dat";
try (FileWriter writer = new FileWriter(filename)) {
writer.write(sb.toString());
} catch (IOException e) {
e.printStackTrace();
}
// 统计每个字母出现的次数
Map<Character, Integer> map = new HashMap<>();
try (FileReader reader = new FileReader(filename)) {
int ch;
while ((ch = reader.read()) != -1) {
char c = (char) ch;
if (c >= 'a' && c <= 'z') {
map.put(c, map.getOrDefault(c, 0) + 1);
}
}
} catch (IOException e) {
e.printStackTrace();
}
// 打印出每个字母出现的次数
for (char c = 'a'; c <= 'z'; c++) {
int count = map.getOrDefault(c, 0);
System.out.println(c + ": " + count);
}
}
}
```
这个程序先使用 `Random` 类产生了1000个小写英文字母,并将它们写入到文件中。然后使用 `FileReader` 类读取文件中的字母,并使用 `HashMap` 统计每个字母出现的次数。最后打印出每个字母出现的次数。
注意,在统计每个字母出现的次数时,我们只统计了小写字母,而忽略了文件中可能存在的其他字符。
阅读全文