欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java?empty、null、blank的區(qū)別小結(jié)

 更新時(shí)間:2023年06月02日 09:51:35   作者:軟件質(zhì)量保障  
本文主要介紹了Java?empty、null、blank的區(qū)別小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

寫代碼時(shí)候經(jīng)常遇到判empty、null和blank的情況。這些概念看起來很相似,但是它們有著不同的含義和用法。本文將介紹這三個(gè)概念的區(qū)別,并分析具體場景該如何做判斷。

empty

empty是指一個(gè)字符串長度為0/Java集合對象不存在元素,可以使用isempty()方法來判斷一個(gè)字符串是否為空。

也可以使用isEmpty()方法來判斷Java集合元素否為空。

例如:

String str = "";
if (str.isEmpty()) {
    System.out.println("This string is empty");
}

上述代碼會輸出"This string is empty",因?yàn)樽兞縮tr是一個(gè)空字符串。

此外,還有一個(gè)常見的錯誤就是認(rèn)為一個(gè)字符串包含空格或多個(gè)空格就是empty,這是不正確的。例如:

String str = "  ";
if (str.isEmpty()) {
    System.out.println("This string is empty");
}

上述代碼不會輸出任何內(nèi)容,因?yàn)樽兞縮tr并不是一個(gè)空字符串,而是包含兩個(gè)空格的字符串。

null

null表示一個(gè)對象不存在。如果一個(gè)引用變量沒有被初始化或被顯式賦值為null,那么這個(gè)變量的值就是null。例如:

String str = null;
if (str == null) {
    System.out.println("This string is null");
}

上述代碼會輸出"This string is null",因?yàn)樽兞縮tr的值為null。

需要注意的是,對于基本數(shù)據(jù)類型(如int、double等),它們不能被賦值為null。如果試圖將一個(gè)基本數(shù)據(jù)類型賦值為null,會出現(xiàn)編譯錯誤。

blank

blank是指一個(gè)字符串長度大于0但是只包含空格(包括制表符和換行符)的情況。Java中可以使用isblank()方法來判斷一個(gè)字符串是否為blank。例如:

String str = "  ";
if (str.isBlank()) {
    System.out.println("This string is blank");
}

上述代碼會輸出"This string is blank",因?yàn)樽兞縮tr包含兩個(gè)空格,并且這是這個(gè)字符串唯一的內(nèi)容。

需要注意的是,在Java 11之前是沒有isblank()方法的。如果你正在使用早期版本的Java,應(yīng)該使用trim()方法來去掉字符串兩端的空格,并檢查結(jié)果是否為空。例如:

String str = "  ";
if (str.trim().isEmpty()) {
    System.out.println("This string is blank");
}

上述代碼也會輸出"This string is blank",因?yàn)樽兞縮tr經(jīng)過trim()方法處理后變成了一個(gè)空字符串。

總結(jié)一下

empty、null和blank三個(gè)概念有著明顯的區(qū)別:

  • empty表示一個(gè)字符串長度為0,Java集合不存在元素。
  • null表示一個(gè)對象不存在;
  • blank表示一個(gè)字符串長度大于0但是只包含空格。

為了更好地理解這些概念和區(qū)別,以下是一些示例代碼。

public class StringExample {
    public static void main(String[] args) {
        String emptyStr = "";
        String nullStr = null;
        String blankStr = "  ";
        // 判斷empty字符串
        if (emptyStr.isEmpty()) {
            System.out.println("This string is empty");
        }
        // 判斷null字符串
        if (nullStr == null) {
            System.out.println("This string is null");
        }
        // 判斷blank字符串
        if (blankStr.isBlank()) {
            System.out.println("This string is blank");
        }
    }
}

上述代碼會輸出"This string is empty"和"This string is blank",因?yàn)樽兞縠mptyStr是一個(gè)空字符串,變量blankStr包含兩個(gè)空格。

Java集合如何判空

Java List判空

isEmpty() 方法是一個(gè)通用的方法,可以用于所有實(shí)現(xiàn)了 java.util.Collection 接口的類(如 List、Set 等等)。如果集合中沒有任何元素,則返回 true;否則返回 false。

List<String> list = new ArrayList<>();
System.out.println(list.isEmpty()); // 輸出 true
list.add("apple");
System.out.println(list.isEmpty()); // 輸出 false

以上代碼創(chuàng)建了一個(gè)空的 ArrayList,并使用 isEmpty() 方法檢查它是否為空。然后在列表中添加了一個(gè)元素,再次使用 isEmpty() 方法進(jìn)行檢查。第一次輸出為 true,因?yàn)榱斜碇袥]有元素;第二次輸出為 false,因?yàn)榱斜碇杏幸粋€(gè)元素。

Java Map判空

Map可以通過以下幾種方式來判斷是否為空:

1. 使用 isEmpty() 方法:Map 提供了一個(gè) isEmpty() 方法,如果 Map 中沒有任何映射關(guān)系,則返回 true。

Map<String, String> map = new HashMap<>();
System.out.println(map.isEmpty()); // 輸出 true
map.put("key", "value");
System.out.println(map.isEmpty()); // 輸出 false

2. 判斷 Map 的大小:使用 size() 方法獲取 Map 中鍵值對的數(shù)量,如果為 0,則說明 Map 為空。

Map<String, String> map = new HashMap<>();
System.out.println(map.size() == 0); // 輸出 true
map.put("key", "value");
System.out.println(map.size() == 0); // 輸出 false

3. 判斷 Map 中的鍵集合是否為空:使用 keySet() 方法獲取 Map 中所有鍵的集合,然后判斷集合是否為空。

Map<String, String> map = new HashMap<>();
System.out.println(map.keySet().isEmpty()); // 輸出 true
map.put("key", "value");
System.out.println(map.keySet().isEmpty()); // 輸出 false

需要注意的是,以上三種方法都可以判斷 Map 是否為空,但建議根據(jù)實(shí)際情況選擇最適合的方法。如果只需要知道 Map 是否為空,直接使用 isEmpty() 方法;如果需要執(zhí)行其他操作(如遍歷、刪除等),則可能需要獲取 Map 的大小或鍵集合。

到此這篇關(guān)于Java empty、null、blank的區(qū)別小結(jié)的文章就介紹到這了,更多相關(guān)Java empty null blank內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mybatis判斷int是否為空的時(shí)候,需要注意的3點(diǎn)

    mybatis判斷int是否為空的時(shí)候,需要注意的3點(diǎn)

    這篇文章主要介紹了mybatis判斷int是否為空的時(shí)候,需要注意的3點(diǎn),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Spring Boot通過Junit實(shí)現(xiàn)單元測試過程解析

    Spring Boot通過Junit實(shí)現(xiàn)單元測試過程解析

    這篇文章主要介紹了Spring Boot通過Junit實(shí)現(xiàn)單元測試過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • java兩個(gè)integer數(shù)據(jù)判斷相等用==還是equals

    java兩個(gè)integer數(shù)據(jù)判斷相等用==還是equals

    本文主要介紹了java兩個(gè)integer數(shù)據(jù)判斷相等用==還是equals,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Java應(yīng)用程序開發(fā)學(xué)習(xí)之static關(guān)鍵字應(yīng)用

    Java應(yīng)用程序開發(fā)學(xué)習(xí)之static關(guān)鍵字應(yīng)用

    今天小編就為大家分享一篇關(guān)于Java應(yīng)用程序開發(fā)學(xué)習(xí)之static關(guān)鍵字應(yīng)用,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • SpringBoot中的異常處理與參數(shù)校驗(yàn)的方法實(shí)現(xiàn)

    SpringBoot中的異常處理與參數(shù)校驗(yàn)的方法實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot中的異常處理與參數(shù)校驗(yàn)的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • JAVA序列化和反序列化的底層實(shí)現(xiàn)原理解析

    JAVA序列化和反序列化的底層實(shí)現(xiàn)原理解析

    這篇文章主要介紹了JAVA序列化和反序列化的底層實(shí)現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Java synchronized與CAS使用方式詳解

    Java synchronized與CAS使用方式詳解

    提到Java的知識點(diǎn)一定會有多線程,JDK版本不斷的更迭很多新的概念和方法也都響應(yīng)提出,但是多線程和線程安全一直是一個(gè)重要的關(guān)注點(diǎn)。比如說我們一入門就學(xué)習(xí)的synchronized怎么個(gè)實(shí)現(xiàn)和原理,還有總是被提到的CAS是啥,他和synchronized關(guān)系是啥?請往下看
    2023-01-01
  • Java實(shí)現(xiàn)查找當(dāng)前字符串最大回文串代碼分享

    Java實(shí)現(xiàn)查找當(dāng)前字符串最大回文串代碼分享

    本文給大家介紹的是如何使用Java實(shí)現(xiàn)查找當(dāng)前字符串最大回文串代碼,非常的簡單實(shí)用,有需要的小伙伴可以參考下
    2016-07-07
  • java Class文件結(jié)構(gòu)解析常量池字節(jié)碼

    java Class文件結(jié)構(gòu)解析常量池字節(jié)碼

    這篇文章主要為大家介紹了java Class文件的整體結(jié)構(gòu)解析常量池字節(jié)碼詳細(xì)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • java多線程之停止線程的方法實(shí)例代碼詳解

    java多線程之停止線程的方法實(shí)例代碼詳解

    這篇文章主要介紹了java多線程之停止線程的方法實(shí)例代碼詳解,非常不錯,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05

最新評論