1

我知道有一种更简单的方法可以检查字符串是否为回文,但我想使用库函数尝试它,我想出了下面的代码。

public boolean isPalindrome1(String input)
{

    int length = input.length()/2;
    if(input.length()%2!=0)
    {
        length = length + 1;
    }


    return(input.substring(0,length).equals(new StringBuilder(input.substring(length, input.length())).reverse().toString()));
}

我正在尝试检查字符串的一半是否等于另一半的反向。但它被奇数和偶数长度弄乱了。有人可以指出更正,它适用于奇数、偶数长度以及空字符串和长度 = 1 的字符串。

4

2 回答 2

6

您已经在使用 reverse()。为什么不能将输入字符串与相反的字符串进行比较?这不正是你一开始想要的吗?无需以复杂的方式将事物分成两半。

于 2012-08-02T16:34:53.183 回答
2

你可以:

return new StringBuilder(input).reverse().toString().equals(input);

你想知道的就去吧:

public boolean isPalindrome(String input) {
    for (int i = 0; i < input.length() / 2; i++) {
        if (input.charAt(i) != input.charAt(input.length() - 1 - i)) {
            return false;
        }
    }
    return true;
}
于 2012-08-02T16:36:49.163 回答