【发布时间】:2021-07-25 01:24:09
【问题描述】:
我正在尝试编写一种方法来检查给定单词是否为回文,但到目前为止它不起作用。我怀疑错误存在于 if 语句中,并且您没有将字符串等对象与== 进行比较,而是与equals 进行比较,对吗?但是 Java 不允许我写:if (firstHalf.charAt(i).equals(secondHalf.charAt(j))),那么我该怎么做才能让它工作呢?代码中是否还有其他错误?
public static boolean isPalindrome(String string) {
String firstHalf = string.substring(0, string.length() / 2);
String secondHalf = string.substring(string.length() / 2, string.length());
for (int i = 0; i <= firstHalf.length(); i++) {
for (int j = secondHalf.length(); j <= 0; j--) {
if (firstHalf.charAt(i) == secondHalf.charAt(j)) {
return true;
}
}
}
return false;
}
【问题讨论】:
-
您可以对单个字符使用 ==,这很好。您的 j 循环递减,因此您应该检查 j>=0 而不是 j
-
一旦找到匹配项,您也会返回 true,这是错误的。一切都需要匹配才能使字符串成为回文,而不仅仅是第一个和最后一个字符
标签: java methods palindrome