0

我有以下代码:

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


if(control == "if") {

append = "if( ";

}

然而,尽管控制是“如果”,测试仍然会失败。有什么解决办法吗?

4

5 回答 5

5

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

if(control.equals("if") {
   append = "if( ";
}
于 2013-04-13T20:40:35.397 回答
2

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

于 2013-04-13T20:40:02.337 回答
2

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

于 2013-04-13T20:41:30.093 回答
1
String tmp = "cif";
String control = tmp.substring(1);

if(control.equals("if")) {
   append = "if( ";
}
于 2013-04-13T20:51:08.507 回答
0

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

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

因此,您需要的代码是:

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

if("if".equals(control) {

...
于 2013-04-13T20:43:17.280 回答