我有以下代码:
String tmp = "cif";
String control = tmp.substring(1);
if(control == "if") {
append = "if( ";
}
然而,尽管控制是“如果”,测试仍然会失败。任何解决方案?
答案 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) {
...