我知道有一种更简单的方法可以让一些字符串成为回文,但是我想尝试使用库函数,我想出了下面的代码。
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的字符串。
答案 0 :(得分:6)
你已经在使用reverse()了。为什么不能将输入字符串与反向字符串进行比较?这首先不是你想要的吗?不需要以复杂的方式将事情分成两半。
答案 1 :(得分: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;
}