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);
}
}