我有以下代碼兩個字符串:比較中的if語句
String tmp = "cif";
String control = tmp.substring(1);
if(control == "if") {
append = "if(";
}
然而,儘管控制是「如果」,測試仍然會失敗。任何解決方案
我有以下代碼兩個字符串:比較中的if語句
String tmp = "cif";
String control = tmp.substring(1);
if(control == "if") {
append = "if(";
}
然而,儘管控制是「如果」,測試仍然會失敗。任何解決方案
對於字符串比較使用equals()
==
比較對象的引用而.equals()
比較實際值
if(control.equals("if") {
append = "if(";
}
的「==」運營商將比較兩個字符串的內存地址,而不是它們的值。您需要使用equals()
。在你的情況下,做一些像"if".equals(control);
。
由於字符串是對象,因此無法通過==運算符比較字符串。
作爲對象,它在其類中提供了具有各種方法的額外功能。一種可能派上用場的方法是equals()方法。
所以你會希望將代碼:
String tmp = "cif";
String control = tmp.substring(1);
if("if".equals(control) {
...
String tmp = "cif";
String control = tmp.substring(1);
if(control.equals("if")) {
append = "if(";
}
檢查了這一點http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java –