检测英文文本中字母和空格出现的次数

img

class Test {
    public static void main(String[] args) {
        Test solution = new Test();
        solution.test();
    }

    void test() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter a sentence terminated by a full stop:\n>> ");
        String str = scanner.nextLine();

        int[] count = new int[27];
        for (char c : str.toCharArray()) {
            if (c == ' ') {
                count[26] ++;
            } else if (c >= 'a' && c <= 'z') {
                count[c - 'a']++;
            } else if (c >= 'A' && c <= 'Z') {
                count[c - 'A']++;
            }
        }

        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("Frequency analysis for this sentence:\n");
        for (int i = 0; i < 27; i++) {
            stringBuilder.append(format(i, count[i])).append('\t');
            if ((i + 1) % 5 == 0) {
                stringBuilder.append('\n');
            }
        }
        System.out.println(stringBuilder);
    }

    String format(int i, int count) {
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append(i < 26 ? ((char) ('A' + i)) : "space");
        int len = 0, tmp = count;
        while ((tmp /= 10) > 0) {
            len++;
        }
        while (len++ < 4) {
            stringBuilder.append(' ');
        }
        stringBuilder.append(count).append(';');
        return stringBuilder.toString();
    }
}

运行结果:

img

用replace()
String str = 原字符串
比如要检查"A",str = str.replace("A", "");
然后用原字符串的长度减去已replace后的字符串长度就OK啦

解决了就整个采纳哈,谢啦