[英]Why hashcode and equals method does not work with ArrayList?
[英]Does the .equals() method work with StringBuilders?
我正在嘗試制作一個程序來測試用戶輸入字符串是否是回文。
這是我的代碼:
import java.util.Scanner;
public class palindrome{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
System.out.println("Enter text");
String inputstr = input.nextLine();
sb.append(inputstr);
if((sb).equals(sb.reverse())){
System.out.println("Palindrome");
}
else{
System.out.println("Not a palindrome");
}
}
}
沒有編譯時錯誤,但無論我輸入什么,輸出都是回文。 .equals()和StringBuilder之間是否存在某種不兼容性? 如果是這樣,有沒有解決方法?
StringBuilder
不會覆蓋equals
,所以你應該使用String
的equals
代替。
if(sb.toString().equals(sb.reverse().toString()))
PS即使它確實覆蓋了equals
,你的測試總是會返回true,因為你正在將StringBuilder
實例與它自己進行比較( reverse
不會返回一個新的StringBuilder
實例)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.