public boolean xyzThere(String str) {
for (int i=0; i < str.length()-3; i++){
if (str.substring(i+1, i+4) == "xyz" && str.charAt(i) != '.'){
return true;
}
}
return false;
}
以上功能总是返回false,无法解决原因。我正在阅读codingbat.com Java练习,这里有简要说明:
如果给定的字符串包含“xyz”的外观,则返回true,其中xyz不直接以句点(。)开头。所以“xxyz”计算但“x.xyz”不计算。
有人可以帮忙吗?
答案 0 :(得分:1)
您不能使用==进行字符串比较。它将比较字符串的引用。
public static boolean xyzThere(String str) {
for (int i=0; i < str.length()-3; i++){
if ("xyz".equalsIgnoreCase(str.substring(i+1, i+4)) && str.charAt(i) != '.'){
return true;
}
}
return false;
}
试试这个。