Java StringBuilder和equals用于比较原始字符串和反转字符串
程序检查字符串的倒数和原始字符串是否相同,为了得到字符串的倒数,我在java中使用stringbuilder并比较java的倒数,但输出不正确。如果原始字符串和倒数字符串相同,则输出yes else输出NOJava StringBuilder和equals用于比较原始字符串和反转字符串,java,Java,程序检查字符串的倒数和原始字符串是否相同,为了得到字符串的倒数,我在java中使用stringbuilder并比较java的倒数,但输出不正确。如果原始字符串和倒数字符串相同,则输出yes else输出NO import java.io.*; import java.util.Scanner; import java.lang.*; public class Stringuse { private static Scanner in; public static void mai
import java.io.*;
import java.util.Scanner;
import java.lang.*;
public class Stringuse {
private static Scanner in;
public static void main(String[] args) {
in = new Scanner(System.in);
String s=in.next();
StringBuilder sb=new StringBuilder(s);
sb.reverse().toString();
System.out.println(sb);
boolean ans=sb.equals(s);
System.out.println(ans);
if(ans==true)
System.out.println("Yes");
else
System.out.println("No");
}
}
你可能只需要把它改成
boolean ans = sb.toString().equals(s);
因为只有String
s等于其他String
s;StringBuilder
不能等于String
…虽然您也可以编写
sb.reverse()
而不是sb.reverse().toString()
,以及if(ans)
而不是if(ans==true)
,但您可能只需要将其更改为
boolean ans = sb.toString().equals(s);
因为只有String
s等于其他String
s;StringBuilder
不能等于String
…虽然您也可以编写
sb.reverse()
而不是sb.reverse().toString()
,也可以编写if(ans)
而不是if(ans==true)
,我只是按照注释中的建议做了一些更改,现在工作正常
public static void main(String[] args) {
in = new Scanner(System.in);
String s=in.next();
StringBuilder sb=new StringBuilder(s);
boolean ans= sb.reverse().toString().equals(s);
if(ans==true)
System.out.println("Yes");
else
System.out.println("No");
}
我只是按照评论中的建议做了一些修改,现在一切正常
public static void main(String[] args) {
in = new Scanner(System.in);
String s=in.next();
StringBuilder sb=new StringBuilder(s);
boolean ans= sb.reverse().toString().equals(s);
if(ans==true)
System.out.println("Yes");
else
System.out.println("No");
}
StringBuilder
s无论如何都不会等于String
s。您必须使用sb.toString().equals
@LouisWasserman如果(ans==true)是多余的,您能在注释中给出正确的代码版本吗if(ans)
是一种在不创建新字符串或不使用StringBuilder的情况下执行此操作的更好方法:@Goaler444*前提是字符串完全由单字符代码点组成。StringBuilder
s无论如何都不会等于string
s。您必须使用sb.toString().equals
@LouisWasserman如果(ans==true)是多余的,您能在注释中给出正确的代码版本吗<代码>如果(ans)是一种不创建新字符串或不使用StringBuilder的更好方法:@Goaler444*前提是字符串完全由单字符代码点组成。StringBuilder不能等于字符串,也不能等于具有相同内容的其他StringBuilder,因为StringBuilder没有实现equals方法,所以StringBuilder不能等于String,也不能等于具有相同内容的其他StringBuilder,因为StringBuilder没有实现equals方法