簡體   English   中英

.equals()方法是否適用於StringBuilders?

[英]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 ,所以你應該使用Stringequals代替。

if(sb.toString().equals(sb.reverse().toString()))

PS即使它確實覆蓋了equals ,你的測試總是會返回true,因為你正在將StringBuilder實例與它自己進行比較( reverse不會返回一個新的StringBuilder實例)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM