我正在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中的所有单词重复。