如何在java中处理空字符串

时间:2014-04-07 02:34:53

标签: java

我是.net程序员,在java中是全新的。我在处理java中的空字符串时遇到问题。我将字符串数组中的值赋给字符串变量completeddate。 我尝试了所有这些但是没有用。

String COMPLETEDATE;
COMPLETEDATE = country[23];

if(country[23] == null && country[23].length() == 0) 
{
    // ...
}

if (COMPLETEDATE.equals("null")) 
{
    // ...
}

if(COMPLETEDATE== null)
{
    // ...
}

if(COMPLETEDATE == null || COMPLETEDATE.equals("null"))
{
    // ...
}

4 个答案:

答案 0 :(得分:3)

对于初学者......将String与潜在null值进行比较的最安全方法是先保证保证非空String,然后调用.equals在那:

if("constantString".equals(COMPLETEDDATE)) {
    // logic
}

但总的来说,你的做法并不正确。

正如我评论的那样,第一个将始终生成一个NullPointerException,它是否经过country[23] == null评估。如果是null,则它没有.length属性。您可能打算转而致电country[23] != null

第二种方法只将它与文字字符串"null"进行比较,鉴于程序的范围,它可能是也可能不是。此外,如果COMPLETEDDATE本身为空,它将失败 - 在这种情况下,您将按照我的描述纠正它。

你的第三种方法是正确的,因为它是唯一检查null的方法。通常情况下,如果你想要的对象不是 null,你会想要做一些逻辑。

你的第四种方法是偶然的;如果COMPLETEDDATE实际上是nullOR将会短路。如果COMPLETEDDATE等于文字"null",也可能是真的。

答案 1 :(得分:0)

您所询问的内容并不完全清楚,但要检查String变量是否为null,请使用以下语句。

if(myString==null)

检查对象引用是否为空。

由于以下两个原因,您撰写的以下声明不正确。

if (COMPLETEDATE.equals("null")) 
                    {
                        // ...

                    }

1。 null是Java中的关键字,"null"只是一串文字。

2. .equals()根据给定方法的相等定义检查两个对象是否相等。应始终使用==比较运算符进行空检查,因为它检查引用相等性。

答案 2 :(得分:0)

如果变量为null,则不能取消引用它。

这意味着您无法在其上调用方法。

所以......每次第一个子句为真时,以下if语句都会抛出NullPointerException:

if (a == null && a.length() == 0)

换句话说:如果a为空,则不能调用a上的长度方法。

答案 3 :(得分:0)

要检查空字符串,您可以在Java 8中使用可选,如下所示: import可选

import java.util.Optional;

按上述方式导入

String str= null;
Optional<String> str2 = Optional.ofNullable(str);

然后使用 isPresent(),如果str2包含NULL则返回false,否则返回true

if(str2.isPresent())
{
//If No NULL 
}
else
{
//If NULL
}

参考:https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html