字符串回文问题,请大家指点
(2)按如下的要求编写程序:检查输入的字符串是否为“回文”。所谓“回文”是指当一个字符串正序读和逆序读时都一样。比如:“level”、“123321”、“我爱我”、“madam”等都是“回文”字符串。(教材P126页6-5题) 
 实验要求:利用命令行参数输入一个字符串,判断是否为回文   
 class   Lizhi{ 
    public   static   void   main(String   args[]){    
                for(int   i=0;i <args.length;i++){ 
                            System.out.print( "    "+args[i]);   
 StringBuffer   strBuff=new   StringBuffer(args[i]); 
                if(strBuff==strBuff.reverse())       
                      System.out.print( "是回文! "); 
                else 
                      System.out.print( "不是回文! "); 
       } 
    } 
 } 
 我编译:   javac   Lizhi.java 
       运行:java   Lizhi   123 
 输出 123是回文 
 这个不对呀...怎么不输出  123不是回文...该如何改正 
------解决方案--------------------if(strBuff==strBuff.reverse())   
 这一句有问题啊,strBuff是一个引用,你用==,实际上==两边是相同的引用,reverse方返回一个引用,跟你的原来得仍然一样啊 
 建议你用equals()或者是toString后equals() 
 总是不要用==,这是判断地址的,不是比较值的
------解决方案--------------------class LiZhi{ 
  public static void main(String args[]){  
      for(int i=0;i <args.length;i++){ 
          System.out.print( "  "+args[i]);   
 StringBuffer strBuff=new StringBuffer(args[i]); 
      if(strBuff.toString().equals(strBuff.reverse().toString()))   
        System.out.print( "是回文! "); 
      else 
        System.out.print( "不是回文! "); 
   } 
  } 
 } 
------解决方案--------------------用equals()方法进行判断就不会出现你说的那种错误了   
 这是因为equals()方法在判断两个String的内容是否一致   
 而==在判断两个String的引用位置是否一致(也就是在内存中指向的地址是否一致)
------解决方案--------------------if(strBuff==strBuff.reverse())   
 ->    
 if(args[i]==strBuff.reverse().toString().intern())