package ytr250813;
import java.io.IOException;
public class CharacterCounter {
public static void main(String[] args) throws IOException {
// 初始化計數器變量
int letterCount = 0; // 英文字母計數器
int spaceCount = 0; // 空格計數器
int digitCount = 0; // 數字計數器
int otherCount = 0; // 其他字符計數器
System.out.println("請輸入一行字符(按回車結束):");
// 持續讀取字符直到遇到換行符
int charAsInt; // 存儲讀取的字符(使用int類型接收,因為System.in.read()返回int)
while ((charAsInt = System.in.read()) != '\n') {
// 將讀取的整型轉換為字符類型
char ch = (char) charAsInt;
/* 字符分類判斷 */
if (Character.isLetter(ch)) {
// 判斷是否為英文字母(包括大小寫)
letterCount++;
} else if (Character.isDigit(ch)) {
// 判斷是否為數字(0-9)
digitCount++;
} else if (Character.isWhitespace(ch)) {
// 判斷是否為空白字符(空格、制表符等)
// 注意:這里使用isWhitespace()而不僅僅是空格' ',因為題目中的"空格"通常包含所有空白字符
spaceCount++;
} else {
// 不屬于以上類別的字符歸為其他字符
otherCount++;
}
}
// 輸出統計結果
System.out.println("\n==== 統計結果 ====");
System.out.println("英文字母數量: " + letterCount);
System.out.println("空格數量: " + spaceCount);
System.out.println("數字數量: " + digitCount);
System.out.println("其他字符數量: " + otherCount);
}
}