我正在txt文件中写一个字符出现计数器。运行此命令时,我的计数始终为0:

  public double charPercent(String letter) {

        Scanner inputFile = new Scanner(theText);

        int charInText = 0;
        int count = 0;

        // counts all of the user identified character
        while(inputFile.hasNext()) {

            if (inputFile.next() == letter) {
                count += count;
            }

        }

        return count;
    }


有人看到我要去哪里了吗?

最佳答案

这是因为Scanner.next()将返回整个单词而不是字符。这意味着from的字符串很少与单个字母参数相同(除非单词是单个字母,例如“ I”或“ A”)。我也看不到这一行的必要:

int charInText = 0;


因为没有使用该变量。

相反,您可以尝试如下操作:

 public double charPercent(String letter) {

    Scanner inputFile = new Scanner(theText);

    int totalCount = 0;

    while(inputFile.hasNext()) {

        //Difference of the word with and without the given letter
        int occurencesInWord = inputFile.next().length() - inputFile.next().replace(letter, "").length();

        totalCount += occurencesInWord;

    }

    return totalCount;
}


通过使用inputFile.next()中带字母和不带字母的单词长度之间的差,您将知道字母在该特定单词中出现的次数。这将添加到总数中,并对txt中的所有单词重复。

10-08 16:40