2011-12-30 44 views
-3

可能重複:
Java String.equals versus ==Java中的字符串比較:「==」有什麼問題?

public class S_eaqual { 
    public static void main(String[] args) { 
     String s1 = "one", s2 = "two"; 
     if (s1 + s2 == "onetwo") { 
      System.out.println("Yes..equal"); 
     } 
    } 
} 

這種類型的比較顯示錯誤。這不是比較字符串的正確方法嗎? 兩個String對象可以使用==運算符進行比較。那麼爲什麼這顯示錯誤?

+5

參見:http://stackoverflow.com/questions/767372/java-string-equals-versus – 2011-12-30 06:22:18

+3

我試圖執行它。我沒有得到任何錯誤。它只是沒有打印任何bcos的字符串不相等。你能告訴我們你得到的錯誤嗎? – Ryan 2011-12-30 06:25:28

回答

3

字符串應該使用equals方法進行比較。

String s1 = "one", s2 = "two"; 
if("onetwo".equals(s1+s2)) { 
    System.out.println("Yes..equal"); 
} 
2

使用(s1+s2).equals("onetwo");代替

2

嘗試......

String s3 = s1 + s2 
if(s3.equals("onetwo")) { 
... 

==進行比較,如果他們指的是同一個對象,並s1+s2結果不是在這種情況下,與.equals()字符串方法比較值是否相同。一般來說,您只使用==進行原始值比較。雖然你可以爲對象做這件事,如果你打算檢查以確保兩個引用指向同一個對象。

2

使用等於

if (s1.concat(s2).equals("onetwo")) System.out.println("Yes..equal");