2013-04-13 156 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("; 
}