如何检测字符串是否等于某事?

时间:2017-03-01 23:25:08

标签: android string

如何检测我的字符串text是否不等于“null”?我试过这个,但它不起作用。它总是执行剩下的代码并显示对话框 -

if (!text.equals("null")) {
        AlertDialog alertDialog = new AlertDialog.Builder(this)
                .setTitle("BROADCAST").setMessage(text).create();
        alertDialog.getWindow().setType(
                WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
        alertDialog.show();
    } else {
        // don't show
    }

PS:我不打算检查我的STRING是否为空。我在“STRING”中显示“NULL”,这是一个文本

2 个答案:

答案 0 :(得分:3)

您可以使用:

if(text != null) {
    AlertDialog alertDialog = new AlertDialog.Builder(this)
            .setTitle("BROADCAST").setMessage(text).create();
    alertDialog.getWindow().setType(
            WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
    alertDialog.show();
}

或者检查空字符串:

if(!text.equals("") {
    AlertDialog alertDialog = new AlertDialog.Builder(this)
            .setTitle("BROADCAST").setMessage(text).create();
    alertDialog.getWindow().setType(
            WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
    alertDialog.show();
}

或两者:

if(text != null && !text.equals("") {
    AlertDialog alertDialog = new AlertDialog.Builder(this)
            .setTitle("BROADCAST").setMessage(text).create();
    alertDialog.getWindow().setType(
            WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
    alertDialog.show();
}

修改:如果您正在尝试检查字符串是否等于单词" null"那你的原始代码看起来很好。我建议使用调试器或打印一些日志语句来检查发生了什么。

所以:

private static final String TAG = "SomeActivity";

if (!text.equals("null")) {
    // Not equal to the word null
    Log.d(TAG, "text value should NOT be null and is: " + text);

    //AlertDialog alertDialog = new AlertDialog.Builder(this)
    //        .setTitle("BROADCAST").setMessage(text).create();
    // alertDialog.getWindow().setType(
    //        WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
    // alertDialog.show();
} else {
    // don't show
    Log.d(TAG, "text value should be null and is: " + text);
}

但实际上,这只是测试你没有犯错。除此之外,我建议不要使用" null" 来表示空字符串。它可能会混淆任何看着代码的人。坚持""这是更标准的。

答案 1 :(得分:1)

按原样,您的代码当前正在检查字符串是否等于字符串" null"。如果要查看String对象本身是否为空或不存在,请考虑:

if (text != null) {
    AlertDialog alertDialog = new AlertDialog.Builder(this)
            .setTitle("BROADCAST").setMessage(text).create();
    alertDialog.getWindow().setType(
            WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
    alertDialog.show();
} else {
    // don't show
}