2 sinat 34794545 sinat_34794545 于 2016.04.26 10:55 提问

字符串逆序输出,并判断前后是否相等

package lab10_4;

/**
*

  • @author Administrator
    */
    import java.util.Scanner;
    public class Lab10_4 {

    /**

    • @param args the command line arguments
      */
      public static void main(String[] args) {
      // TODO code application logic here
      Scanner scan=new Scanner(System.in);
      System.out.print("请输入一个字符串:");

      StringBuffer s=new StringBuffer(scan.nextLine());
      System.out.print("逆序后的字符串是:");
      StringBuffer s1=new StringBuffer("");
      for( int i=s.length()-1;i>=0;--i){
      System.out.print(s.charAt(i));
      s1.append(s.charAt(i));
      }
      s1.toString();
      s.toString();
      System.out.println();
      System.out.print(s.equals(s1));

    }

}
图片说明
为什么输出的是false

7个回答

liuyihuansmm
liuyihuansmm   2016.04.26 11:08
已采纳

哈哈哈哈,这道题还是考细致的。朋友,System.out.print(s.equals(s1)); 这里的s和s1你再仔细看看是什么类啊,虽然你s.toString();但是你s还是StringBuffer类啊
,而StringBufferl类没有实现equals的方法,所以它用的还是Object继承而来的equals()方法,当然是false了。
我想,你其实代码是想写成这样的

    String s2  =  s1.toString();
    String s3   =  s.toString();
    System.out.println();
    System.out.print(s2.equals(s3));
CSDNXIAOD
CSDNXIAOD   2016.04.26 11:03

java 判断字符串是否相等
java 判断字符串是否相等
Java中判断字符串是否相等
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

w172087242
w172087242   Ds   Rxr 2016.04.26 11:09

因为StringBuffer没有重写hashCode和equals。
所以想要比较,需要先toString,然后再比较。

yomo127
yomo127   2016.04.26 11:12

因为s和s1还是StringBuffer的格式,改成String型的equals就行了

    String res1 = s1.toString();
    String res = s.toString();
    System.out.println();
    System.out.print(res.equals(res1));

或者

    System.out.print(s1.toString().equals(s.toString()));
sl_18500
sl_18500   2016.04.26 14:50

String res1 = s1.toString();
String res = s.toString();
System.out.println();
System.out.print(res.equals(res1));

Joson_Chou
Joson_Chou   2016.04.29 09:21

Stringbuffer两个对象并不相等图片说明

oSanYeCao1234567
oSanYeCao1234567   Ds   Rxr 2016.09.15 19:14

对象要比较是否相等,可以重写equal方法实现比较

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!