只有部分被执行

时间:2012-10-20 16:29:44

标签: android

  

可能重复:
  How do I compare strings in Java?

即使whel长度为0且flag9为空,否则部分执行。有人帮助我

Log.d(TAG, "flag8 "+ getIntent().getExtras().getString("flag").length());
Log.d(TAG, "flag9 "+ getIntent().getExtras().getString("flag"));
if( getIntent().getExtras().getString("flag")=="0"   ||getIntent().getExtras().getString("flag").length()==0)
{
 Log.d(TAG, "hidebeta "+ getIntent().getExtras().getString("flag"));
            beta.putExtra("beta", "hidebeta");
            flag=1;
            beta.putExtra("flag", "1");
                }
else {
    beta.putExtra("beta","showbeta");
    Log.d(TAG, "showbeta "+ getIntent().getExtras().getString("flag"));
    flag=0;
    beta.putExtra("flag","0");
                }

3 个答案:

答案 0 :(得分:5)

在Java中,无法使用==来比较字符串,必须使用

if(string.equals("example"))

因此,让我们在条件中使用equals()并优化它:

String flag = getIntent().getStringExtra("flag");
if(flag.equals("0") || flag.length()==0)

(另外,您应该安全并在尝试访问它们之前检查getIntent()flag是否为空。)

阅读How do I compare strings in Java?Comparing Strings上的文档以获取更多信息。

答案 1 :(得分:5)

使用equals来比较字符串,而不是==(比较对象的引用)

答案 2 :(得分:5)

您不应该使用==运算符来比较两个Strings,因为它会比较实际引用,而不是它们的值。请改用equals()方法。希望这会有所帮助。