希望这是一个简单的修复,但目前令人难以置信的是(ActionScript程序员刚接触Java编程)。
我有一个来自getExtra的字符串变量,我将其与if语句中的静态sting进行比较:
Bundle extras = getIntent().getExtras();
dir = extras.getString("com.activity.Dir");
然后我在if语句中使用它
if (dir == "content"){
// load page content
} else {
// load a menu
}
我在它之前的行上烘烤dir的值,无论它的值是什么,它都不会达到==语句;即:如果dir ==“content”,它会击中其他内容;如果dir ==“foo”,它会击中其他等等。
我尝试将dir放入另一个String var并使用.toString();
String directive = dir.toString();
这也是一样的。我在这里缺少什么?
求助:使用dir.equals(“content”); //谢谢你耐心等我!
答案 0 :(得分:8)
您不得通过==
比较字符串,而是通过.equals()
答案 1 :(得分:2)
字符串是对象,要进行正确的对象相等比较,需要使用
dir.equals("content");
或更好(以避免可能的空指针异常)
"content".equals(dir);
答案 2 :(得分:2)
对于Java上的字符串,你应该使用equals。
2个提示:
答案 3 :(得分:1)
使用equals方法代替==
答案 4 :(得分:0)
"vuqar"=="vuqar"
或"vuqar"!="vuqar"
无法正常使用
你必须使用
if(vuqar.equals("vuqar")){//action}
OR
if(!"vuqar".equals("vuqar")){//action}