有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。

程序算法字符串浏览:257收藏:0
答案:
答:哈哈,其实包含中文字符、英文字符、数字字符原来是出题者放的烟雾弹。
String content = "中国aadf的111萨bbb菲的zz萨菲";
HashMap map = new HashMap();
for (int i = 0; i < content.length; i++) {
    char c = content.charAt(i);
    Integer num = map.get(c);
    if (num == null)
        num = 1;
    else
        num = num + 1;
    map.put(c, num);
}
for (Map.EntrySet entry : map) {
    system.out.println(entry.getkey() + ":" + entry.getValue());
}

估计是当初面试的那个学员表述不清楚,问题很可能是:
如果一串字符如"aaaabbc中国1512"要分别统计英文字符的数量,中文字符的数量,和数字字符的数量,假设字符中没有中文字符、英文字符、数字字符之外的其他特殊字符。
int engishCount;
int chineseCount;
int digitCount;
for (int i = 0; i < str.length; i++) {
    char ch = str.charAt(i);
    if (ch >= '0' && ch <= '9') {
        digitCount++;
    } else if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {
        engishCount++;
    } else {
        chineseCount++;
    }
}