比较if语句中的两个字符串

时间:2013-04-13 20:38:50

标签: java

我有以下代码:

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


if(control == "if") {

append = "if( ";

}

然而,尽管控制是“如果”,测试仍然会失败。任何解决方案?

5 个答案:

答案 0 :(得分:5)

==比较对象引用,而.equals()比较实际值

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

答案 1 :(得分:2)

对于字符串比较,请使用equals()

答案 2 :(得分:2)

" =="运算符将比较两个字符串的内存地址,而不是它们的值。您需要使用equals()。在您的情况下,请执行"if".equals(control);

之类的操作

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

您无法通过==运算符比较字符串,因为字符串是对象。

作为对象,它确实赋予了它们在类中具有各种方法的额外功能。一种可能派上用场的方法是equals()方法。

您想要的代码是:

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

if("if".equals(control) {

...