使用java写一个统计指定文本文件字符出现次数并将结果根据用户选择输出至结果代码或屏幕的代码
时间: 2024-02-25 07:57:00 浏览: 65
可以使用Java的文件读写功能以及之前提到的HashMap来统计指定文本文件中字符出现的次数,并根据用户选择将结果输出到控制台或者文件中。以下是示例代码:
```java
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class CharacterCount {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入文件路径:");
String filePath = scanner.nextLine();
File file = new File(filePath);
if (!file.exists()) {
System.out.println("文件不存在");
return;
}
Map<Character, Integer> map = new HashMap<>();
try {
Scanner fileScanner = new Scanner(file);
while (fileScanner.hasNext()) {
String line = fileScanner.nextLine();
for (int i = 0; i < line.length(); i++) {
char c = line.charAt(i);
if (!map.containsKey(c)) {
map.put(c, 1);
} else {
int count = map.get(c);
map.put(c, count + 1);
}
}
}
fileScanner.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("请选择输出方式:1-控制台,2-文件");
int choice = scanner.nextInt();
if (choice == 1) {
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
} else if (choice == 2) {
try {
File resultFile = new File("result.txt");
FileWriter writer = new FileWriter(resultFile);
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
writer.write(entry.getKey() + ": " + entry.getValue() + "\n");
}
writer.close();
System.out.println("结果已保存至文件");
} catch (IOException e) {
e.printStackTrace();
}
} else {
System.out.println("无效选择");
}
}
}
```
运行结果:
```
请输入文件路径:
example.txt
请选择输出方式:1-控制台,2-文件
2
结果已保存至文件
```
该代码会读取用户指定的文本文件,统计其中每个字符出现的次数,并根据用户选择将结果输出到控制台或文件中。
阅读全文