Java字数统计

时间:2016-12-13 04:20:00

标签: java

我试图通过使用空格作为我的指示符来计算单词。

我目前的代码正在为wordCounter返回疯狂的结果,但我的vowelCounter工作正常。

如果这是一个基本或简单的问题,我道歉...我刚刚开始使用Java,我真的很感激任何帮助!

    System.out.println("Please enter some text: ");
    String fileContent = input.nextLine().toLowerCase();

    int vowelCounter = 0;
    int wordCounter = 0;

    for (int i = 0; i < fileContent.length(); i++) {

        if(fileContent.charAt(i) == 'a' || fileContent.charAt(i) == 'e' || fileContent.charAt(i) == 'i'|| fileContent.charAt(i) == 'o' || fileContent.charAt(i) == 'u')
            vowelCounter++;

    for (int j = 0; j < fileContent.length(); j++) {

        if (Character.isWhitespace(fileContent.charAt(j))) {
            wordCounter++;
        }
    }

    }
    System.out.println("\nVowel Counter: " + vowelCounter);
    System.out.println("Word Counter: " + wordCounter);

3 个答案:

答案 0 :(得分:1)

当你有不好的缩进时会发生这种情况。您正在使用嵌套的for循环而不是2个单独的for循环。

将你的循环分开,如:

for (int i = 0; i < fileContent.length(); i++) {
    if(fileContent.charAt(i) == 'a' || fileContent.charAt(i) == 'e' || fileContent.charAt(i) == 'i'|| fileContent.charAt(i) == 'o' || fileContent.charAt(i) == 'u')
        vowelCounter++;
}

for (int j = 0; j < fileContent.length(); j++) {
    if (Character.isWhitespace(fileContent.charAt(j)))
        wordCounter++;
}

或者将它们放在1个单循环中:

for (int i = 0; i < fileContent.length(); i++) {
    if(fileContent.charAt(i) == 'a' || fileContent.charAt(i) == 'e' || fileContent.charAt(i) == 'i'|| fileContent.charAt(i) == 'o' || fileContent.charAt(i) == 'u')
        vowelCounter++;
    else if (Character.isWhitespace(fileContent.charAt(i))) {
        wordCounter++;
    }
}

最重要的是,要检查字符串中是否存在特定字符(例如元音),您可以这样做:

char ch = fileContent.charAt(i);
if("aeiou".contains("" + ch))

答案 1 :(得分:0)

循环中有一个冗余循环。只需将第二个if添加到同一个循环中:

for (int i = 0; i < fileContent.length(); i++) {

    if(fileContent.charAt(i) == 'a' || fileContent.charAt(i) == 'e' || fileContent.charAt(i) == 'i'|| fileContent.charAt(i) == 'o' || fileContent.charAt(i) == 'u')
        vowelCounter++;

    else if (Character.isWhitespace(fileContent.charAt(i)))
        wordCounter++;

}

答案 2 :(得分:0)

你可能想在wordcount中添加1,因为它计算的是空格数。例如:在“apple banana”中,有1个空格但有2个单词。除此之外,计算空格还有缺点,例如,当单词之间有两个或更多连续的空格时。