2013-04-13 197 views
0

我有以下代碼兩個字符串:比較中的if語句

String tmp = "cif"; 
String control = tmp.substring(1); 


if(control == "if") { 

append = "if("; 

} 

然而,儘管控制是「如果」,測試仍然會失敗。任何解決方案

+3

檢查了這一點http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java –

回答

2

對於字符串比較使用equals()

5

==比較對象的引用而.equals()比較實際值

if(control.equals("if") { 
    append = "if("; 
} 
2

的「==」運營商將比較兩個字符串的內存地址,而不是它們的值。您需要使用equals()。在你的情況下,做一些像"if".equals(control);

0

由於字符串是對象,因此無法通過==運算符比較字符串。

作爲對象,它在其類中提供了具有各種方法的額外功能。一種可能派上用場的方法是equals()方法。

所以你會希望將代碼:

String tmp = "cif"; 
String control = tmp.substring(1); 

if("if".equals(control) { 

... 
1
String tmp = "cif"; 
String control = tmp.substring(1); 

if(control.equals("if")) { 
    append = "if("; 
}