我有以下代码:
String tmp = "cif";
String control = tmp.substring(1);
if(control == "if") {
append = "if( ";
}
然而,尽管控制是“如果”,测试仍然会失败。有什么解决办法吗?
我有以下代码:
String tmp = "cif";
String control = tmp.substring(1);
if(control == "if") {
append = "if( ";
}
然而,尽管控制是“如果”,测试仍然会失败。有什么解决办法吗?
==
比较对象引用,而.equals()
比较实际值
if(control.equals("if") {
append = "if( ";
}
对于字符串比较使用 equals()
"==" 运算符将比较两个字符串的内存地址,而不是它们的值。你需要使用equals()
. 在你的情况下,做类似的事情"if".equals(control);
。
String tmp = "cif";
String control = tmp.substring(1);
if(control.equals("if")) {
append = "if( ";
}
您不能通过 == 运算符比较字符串,因为字符串是对象。
作为对象,它确实为它们提供了额外的功能,在它们的类中拥有各种方法。一种可能派上用场的方法是 equals() 方法。
因此,您需要的代码是:
String tmp = "cif";
String control = tmp.substring(1);
if("if".equals(control) {
...