回文使用 java stringbuilder
Palindrome using java stringbuilder
public class testing {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
StringBuilder sb = new StringBuilder();
StringBuilder sb1 = new StringBuilder();
sb.append(str);
sb1.append(str);
sb1.reverse();
if(sb == sb1) {
System.out.println("yes");
}else if(sb != sb1) {
System.out.println("no");
}
System.out.println(sb.length());
System.out.println(sb1.length());
sc.close();
}
}
一切正常,包括字符串反转,但结果总是没有。
你总是会得到 no
因为 StringBuilder
创建了新对象 & 当你使用 ==
进行比较时,它只比较引用而不是 StringBuilder 对象的内容,所以如果你想要比较内容,您必须在对 StringBuilder 对象应用 .toString()
后使用 .equals()
方法。
public class testing {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
StringBuilder sb = new StringBuilder();
StringBuilder sb1 = new StringBuilder();
sb.append(str);
sb1.append(str);
sb1.reverse();
if(sb == sb1) {
System.out.println("yes");
}else if(sb != sb1) {
System.out.println("no");
}
System.out.println(sb.length());
System.out.println(sb1.length());
sc.close();
}
}
一切正常,包括字符串反转,但结果总是没有。
你总是会得到 no
因为 StringBuilder
创建了新对象 & 当你使用 ==
进行比较时,它只比较引用而不是 StringBuilder 对象的内容,所以如果你想要比较内容,您必须在对 StringBuilder 对象应用 .toString()
后使用 .equals()
方法。