class palindrome
{
public static void main(String args[])
{
String s1=new String();
Scanner sc= new Scanner(System.in);
System.out.println("Enter the string:");
s1=sc.nextLine();
StringBuffer s2=new StringBuffer(s1);
s2.reverse().toString();
if(s1.equals(s2.toString()))
System.out.println("Given String is palindrome");
else
System.out.println("Given String is not palindrome");
}
}
這是我的代碼,用於檢查string
是否是迴文。Java String和StringBuffer如何工作
我得到正確的輸出,但我有2個問題:
1)爲什麼我們不能用toString
像s1.toString()
2)如果我寫if(s1.equals(s2))
而不是僅僅使用if
條件的被跳過,直接else
條件在輸出中運行,爲什麼呢?
1:S1已經是一個字符串。你仍然可以使用s1.toString(),但那是相當多餘的。 2. s2不是字符串。一個字符串(s1)不能等於不是字符串(s2)的東西,因此你必須首先轉換s2。 –
我試圖編輯這個問題,但仍然沒有真正理解第二個問題: - | – notyou
@JamesMacca,但如果你讀到這個問題,它是工作,問題不是關於Palindrom,而是關於'String'和'StringBuffer'。 – AxelH