android:字符串值匹配另一个字符串值使用操作数==不工作?

时间:2011-04-20 15:34:33

标签: java android

希望这是一个简单的修复,但目前令人难以置信的是(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”); //谢谢你耐心等我!

5 个答案:

答案 0 :(得分:8)

您不得通过==比较字符串,而是通过.equals()

答案 1 :(得分:2)

字符串是对象,要进行正确的对象相等比较,需要使用

dir.equals("content");

或更好(以避免可能的空指针异常)

"content".equals(dir);

答案 2 :(得分:2)

对于Java上的字符串,你应该使用equals。

2个提示:

  • 添加您知道它不为null的字符串以避免nullpointers。例如:“比较”.equals(字符串)
  • 如果您希望比较字符串并忽略大小写差异,请使用equalsIgnoreCase()而不是equals。

答案 3 :(得分:1)

使用equals方法代替==

答案 4 :(得分:0)

"vuqar"=="vuqar""vuqar"!="vuqar"无法正常使用

你必须使用

if(vuqar.equals("vuqar")){//action}

OR

if(!"vuqar".equals("vuqar")){//action}