统计一个文件中的字符数 单词数 行数 单词由空格 tab 回车或换行符分割 文件名作为命令行参数传递 用java实现代码
时间: 2024-03-09 12:46:25 浏览: 63
基于Python实现的一个命令行文本计数统计程序,可统计纯英文txt文本中的字符数,单词数,句子数,Python文件行数
以下是一个可以统计文件中字符数、单词数、行数的Java实现代码,可以通过文件名作为命令行参数传递:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class FileAnalyzer {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("请指定要分析的文件名!");
return;
}
String filename = args[0];
try (BufferedReader reader = new BufferedReader(new FileReader(filename))) {
int charCount = 0;
int wordCount = 0;
int lineCount = 0;
String line;
while ((line = reader.readLine()) != null) {
lineCount++;
charCount += line.length();
// 在每行的末尾添加一个空格,以便统计最后一个单词
line += " ";
boolean inWord = false;
for (int i = 0; i < line.length(); i++) {
char c = line.charAt(i);
if (c == ' ' || c == '\t' || c == '\r' || c == '\n') {
if (inWord) {
inWord = false;
wordCount++;
}
} else {
inWord = true;
}
}
}
System.out.println("字符数:" + charCount);
System.out.println("单词数:" + wordCount);
System.out.println("行数:" + lineCount);
} catch (IOException e) {
System.out.println("分析文件时出错:" + e.getMessage());
}
}
}
```
以上代码使用了Java 7引入的自动资源管理(try-with-resources)语法,在读取完文件后会自动关闭文件流。同时在读取每行时,将每行末尾添加一个空格,以便统计最后一个单词。
阅读全文