Pra*_*mar 0 java string tostring stringbuffer object-to-string
以下代码不起作用.任何人都可以告诉我以下代码有什么问题.逻辑上它应该工作......
package assignments;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class IsPalindrome {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("Enter a Word:");
StringBuffer sb1 = new StringBuffer(br.readLine());
StringBuffer sb2 = new StringBuffer(sb1);
sb1.reverse();
if(sb2.equals(sb1))
System.out.println("Palindrome");
else
System.out.println("Not a Palindrome");
}
}
Run Code Online (Sandbox Code Playgroud)
dar*_*jan 10
尝试
sb1.toString().equals(sb2.toString());
Run Code Online (Sandbox Code Playgroud)
因为StringBuffer #toString方法返回缓冲区中存储的数据的String值:
返回表示此序列中数据的字符串.分配并初始化一个新的String对象,以包含此对象当前表示的字符序列.然后返回此String.对此序列的后续更改不会影响String的内容.
在StringBuffer类中,equals方法不像在String类中那样被覆盖.在StringBuffer它只是看起来的引用是否是相同的.因此,您首先需要将其转换为String,然后使用equals方法.
所以试试吧
sb1.toString().equals(sb2.toString());
Run Code Online (Sandbox Code Playgroud)