2

可能重复:
如何比较 Java 中的字符串?

即使 wel 长度为 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");
                }
4

3 回答 3

5

在 Java 中你不能用来==比较字符串,你必须使用:

if(string.equals("example"))

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

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

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

阅读如何比较 Java 中的字符串?或有关比较字符串的文档以获取更多信息。

于 2012-10-20T16:31:21.883 回答
5

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

于 2012-10-20T16:31:37.643 回答
5

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

于 2012-10-20T16:32:09.073 回答