本文示範使用 BufferedReader 逐行讀取文字檔案,利用 Character 工具類分類統計字符類型:字母、數字、空白字符、總行數。適用於日誌分析、程式碼統計、文字檔案審計等場景。
import java.io.*;
public class FileCharCounter {
public static void main(String[] args) {
String fileName = "D:/date.java.bak"; // 修改為實際檔案路徑
countFileChars(fileName);
}
public static void countFileChars(String fileName) {
int letters = 0, digits = 0, whitespaces = 0, lines = 0;
try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
String line;
while ((line = reader.readLine()) != null) {
lines++;
char[] chars = line.toCharArray();
for (char c : chars) {
if (Character.isLetter(c)) {
letters++;
} else if (Character.isDigit(c)) {
digits++;
} else if (Character.isWhitespace(c)) {
whitespaces++;
}
}
}
} catch (IOException e) {
System.err.println("讀取檔案失敗: " + e.getMessage());
e.printStackTrace();
return;
}
System.out.printf("統計結果 - 字母: %d, 數字: %d, 空白: %d, 行數: %d%n",
letters, digits, whitespaces, lines);
}
}
| 方法 | 說明 | 包含範例 |
|---|---|---|
Character.isLetter(char) | 判斷是否為 Unicode 字母 | a-z, A-Z, 中文漢字, 日文假名, 希臘字母等 |
Character.isDigit(char) | 判斷是否為 Unicode 數字 | 0-9, 全形數字 0-9, 羅馬數字 ⅰ-ⅹ 等 |
Character.isWhitespace(char) | 判斷是否為空白字符 | 空格, Tab(\t), 換行(\n), 製表符, 不可中斷空格(\u00A0) 等 |