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)
这样的形式来判断