字符串对称判断 。StringBuilder 转换成 String后地址不同么?但是内容相同,应该是同一个常量池的地址啊。

public static void main(String[] args)
{
//A:键盘输入一个字符串
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
panduan(s);
}
public static void panduan(String s) {

    StringBuilder sb=new StringBuilder(s);
    String ss=sb.reverse().toString();
    System.out.println(ss);
    if(ss==s) {
        System.out.println("是对称字符串");
    }else
    {
        System.out.println("不是对称字符串");
    }

}

图片说明
不管输入是否为对称字符串,都是不对称。

ss.equals(s),是这个意思吗,比较字符串内容是否一样

是同一个常量池地址,但你需要使用String.intern()
下面是一个例子

public class Solution {
    public static void main(String[] args) {
        String s = "aaa";
        StringBuilder sb = new StringBuilder(s);
        String ss = sb.reverse().toString();
        if (s == ss) {
            System.out.println("Won't go here");
        } else {
            System.out.println("s == ss is false");
        }

        if (s.intern() == ss.intern()) {
            System.out.println("s.intern() == ss.intern() is true");
        } else {
            System.out.println("Won't go here");
        }
    }
}

结果如下

s == ss is false
s.intern() == ss.intern() is true

另外使用==来判断字符串是否相等不是一个好的操作(很多情况下都是返回false)
应该使用s.equals(ss)这样的形式来判断