Java 101:检查字符串是否为空或空白


在Java中,空字符串和空字符串是两个不同的概念。对于Java初学者来说,检查String是否为空或为空总是令人困惑和棘手。空字符串是初始化为没有任何字符的String对象,而空白字符串是具有空格字符的String。始终记住,仅包含空格的String可能会或可能不会被视为空,具体取决于程序。根据您的情况,您还可以包括进行检查的逻辑。在Java中,仅包含空格的字符串也称为空白字符串。在本教程中,我将教给您一些正确的方法来检查Java中String是空还是空。

检查Java中的字符串是否为空或为空

为了确保我们与定义在同一页面上,如果String为null或没有任何长度的字符串,则将其视为空。如果字符串仅包含空格,则将其称为空白。

对于Java,空格是空格,制表符等字符。看一下Character.isWhitespace为例。

以下是检查Java中String是否为空或空白的不同方法。

1)使用isEmpty()在Java 6及更高版本中进行空字符串检查

这是检查字符串是否为空的最易读的方法。您可以从下面的代码中看到,第一个检查是空检查,第二个检查是空的。

java

package com.kodehelp.java.lang;
public class StringNullEmptyCheck {
    public static void main(String[] args) {
        String string1 = null;
        String string2 = "";
        if(isStringEmpty(string1)){
            System.out.println("string1 is Empty!");
        }
        if(isStringEmpty(string2)){
            System.out.println("string2 is Empty!");
        }
    }
    static boolean isStringEmpty(String string){
        return string==null || string.isEmpty();
    }
}

2)使用length()在Java 5及以下版本进行空字符串检查

这是通用解决方案,并且在从JDK 1.0到Java 15的所有Java版本中均可使用。强烈建议使用此方法,因为它具有可移植性的优点。这也是检查Java中String是否为空的最快方法。

package com.kodehelp.java.lang;
public class StringNullEmptyCheck {
    public static void main(String[] args) {
        String string1 = null;
        String string2 = "";
        if(isStringEmpty(string1)){
            System.out.println("string1 is Empty!");
        }
        if(isStringEmpty(string2)){
            System.out.println("string2 is Empty!");
        }
    }
    static boolean isStringEmpty(String string){
        return string==null || string.length() == 0;
    }
}

3)使用Java 10及以下版本的空白字符串检查

如果程序将仅包含空格的字符串视为空白字符串,则可以使用以下解决方案。

java

package com.kodehelp.java.lang;
public class StringNullEmptyCheck {
    public static void main(String[] args) {
        String string1 = null;
        String string2 = "      ";
        if(isStringEmpty(string1)){
            System.out.println("string1 is Empty!");
        }
        if(isStringEmpty(string2)){
            System.out.println("string2 is Empty!");
        }
    }
    static boolean isStringEmpty(String string){
        return string==null || string.trim().length() == 0;
    }
}

4)使用Java 11及以上版本的空白字符串检查

Java 11引入了isBlank()检查字符串是否为空或是否包含空格字符的方法。这使得检查字符串是否为空或空白更为直接。下面的示例演示如何使用该isBlank()方法。

java

package com.kodehelp.java.lang;
public class StringNullEmptyCheck {
    public static void main(String[] args) {
        String string1 = null;
        String string2 = "      ";
        if(isStringEmpty(string1)){
            System.out.println("string1 is Empty!");
        }
        if(isStringEmpty(string2)){
            System.out.println("string2 is Empty!");
        }
    }
    static boolean isStringEmpty(String string){
        return string==null || string.isBlank();
    }
}

您还可以使用Google Guava,Spring或Apache Commons检查空字符串或空字符串。


原文链接:http://codingdict.com