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

Java 比较if语句中的两个字符串,java,Java,我有以下代码: String tmp = "cif"; String control = tmp.substring(1); if(control == "if") { append = "if( "; } 然而,尽管控制为“如果”,测试仍将失败。任何解决方案?对于字符串比较,使用equals()=比较对象引用,而.equals()比较实际值 if(control.equals("if") { append = "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(控制)的操作

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

作为对象,它确实为它们提供了额外的功能,在它们的类中有各种方法。一种可能派上用场的方法是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( ";
}