用于识别回文的Java方法

时间:2013-01-10 23:02:07

标签: java for-loop palindrome

在练习中,我们被告知以下方法识别回文(向后和向前相同的词),但它不起作用。它接受一些不是回文的叮咬,我们被要求确定方法中的错误在哪里,并且我们可以纠正它。方法clean剥离空格,然后运行toLowerCase

public boolean checkPalindrom(String sc){
    boolean isPalindrom = true;
    String sr = clean(sc);
    for(int i = 0; i < sr.length()/2; i++){
         isPalindrom = (sr.charAt(i)==(sr.charAt(sr.length()-1 - i)));
    }
return isPalindrom;
}

我找不到任何不是回文但是被这个函数接受的字符串。

任何提示都表示赞赏。

2 个答案:

答案 0 :(得分:3)

一旦失败,你永远不会破坏,所以你只需要在最后一次检查时返回。

答案 1 :(得分:1)

这是修复:

public boolean checkPalindrom(String sc){
    boolean isPalindrom = true;
    String sr = clean(sc);
    for(int i = 0; i < sr.length()/2 && isPalindrom; ++i){
         isPalindrom = (sr.charAt(i)==(sr.charAt(sr.length()-1 - i)));
    }
return isPalindrom;
}
这样,一旦你发现它不是一个palindrom,你就打破了循环。否则,如果它在中间和附近有相同的字母,它将被视为一个回文。

示例:

adcde