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( ";
}