我正在检查String "nitin"
是否是回文,但它返回false。
请有人帮我解决这个问题。
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("nitin");
sb.reverse();
String rev = sb.toString();
System.out.println(sb);
System.out.println(rev);
if (sb.equals(rev)) {
System.out.println("true");
} else {
System.out.println("false");
}
}
答案 0 :(得分:4)
您正在将StringBuffer与String进行比较。
试试if (sb.toString().equals(rev)) {
答案 1 :(得分:1)
sb
是 StringBuffer ,rev
是 String 。这两个不同类型的对象无法相互比较“字符串值相等”。
使用if (sb.toString().equals(rev))
:这样可以比较两个字符串是否相等,因为sb.toString()
被转换为字符串。
此外,在开始时反转sb
是错误的。这是因为在您声明String rev = sb.toString()
时,sb
已经被撤消了。在声明sb
后再次致电sb.reverse()
,取消反复rev
。你的最终代码应该是
StringBuffer sb = new StringBuffer("nitdin");
sb.reverse(); // reversed sb
String rev = sb.toString(); // rev is reversed sb to String
sb.reverse(); // unreversed sb
...
if (sb.toString().equals(rev)) // String-string comparison
答案 2 :(得分:0)
您可能会误解StringBuffer和String。您的代码可能需要更改
RewriteCond %{QUERY_STRING} ^$