Task from Codingbat :
Given a string, count the number of words ending in 'y' or 'z' -- so the 'y' in "heavy" and the 'z' in "fez" count, but not the 'y' in "yellow" (not case sensitive). We'll say that a y or z is at the end of a word if there is not an alphabetic letter immediately following it. (Note: Character.isLetter(char) tests if a char is an alphabetic letter.)
countYZ("fez day") → 2
countYZ("day fez") → 2
countYZ("day fyyyz") → 2
I'm trying to solve this task like this:
public int countYZ(String str) {
String regex = "(.[.^y^z]\\b)";
return str.toLowerCase().replaceAll(regex, "").length();
}
But not all the tests were passed. How can I fix regex = "(.[.^y^z]\b)" in order to pass all the tests?