【发布时间】:2014-06-19 17:31:15
【问题描述】:
p.equals(w) 总是会成真。为什么?
import java.io.*;
import java.util.Scanner;
class TestClass {
public static void main(String args[] ) throws Exception {
Scanner s=new Scanner(System.in);
int t=s.nextInt();
while(t-->0){
String k=s.next();
StringBuffer p=new StringBuffer(k);
int c=0;
StringBuffer w=p.reverse();
if(p.equals(w)){
System.out.print(p.equals(w));
for(int i=0;i<p.length();i++)
{
if(p.charAt(i)=='1'||p.charAt(i)=='0'||p.charAt(i)=='8') { c++;}
}
}
if(c==p.length())System.out.println("YES");
else System.out.println("NO");
}
}
}
【问题讨论】:
-
你为什么不用
equalsIgnoreCase()? -
即使是正确复制的 (!) 和反转的缓冲区也总是比较不相等,因为 StringBuffer 不会覆盖等于。
标签: java equals reverse stringbuilder stringbuffer