这就是问题所在:给定一个字符串,计算以 'y' 或 'z' 结尾的单词的数量——所以 "heavy" 中的 'y' 和 "fez" 中的 'z' 计数,但不包括 'y ' 在“黄色”中(不区分大小写)。如果单词后面没有紧跟字母,我们会说 ay 或 z 位于单词的末尾。(注意:Character.isLetter(char) 测试 char 是否为字母。)
countYZ("fez day") → 2
countYZ("day fez") → 2
countYZ("day fyyyz") → 2
这是我的代码:
public int countYZ(String str) {
int count = 0;
for (int i=0; i<str.length(); i++){
if (Character.isLetter(i) && (Character.isLetter(i+1)==false || i+1==str.length()) && (Character.toLowerCase(str.charAt(i))=='y' || Character.toLowerCase(str.charAt(i))=='z')){
count++;
}
}
return count;
}
我知道这很混乱,但我只是想弄清楚为什么它现在不起作用。每次运行都返回“0”。在 if 语句中,我正在检查:是 ia 字母吗?i+1 是字母还是字符串的结尾?最后,如果 i 是 'y' 或 'z'。感谢帮助!