我有以下代码两个字符串:比较中的if语句
String tmp = "cif";
String control = tmp.substring(1);
if(control == "if") {
append = "if(";
}
然而,尽管控制是“如果”,测试仍然会失败。任何解决方案
我有以下代码两个字符串:比较中的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(control);
。
由于字符串是对象,因此无法通过==运算符比较字符串。
作为对象,它在其类中提供了具有各种方法的额外功能。一种可能派上用场的方法是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(";
}
检查了这一点http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java –