簡體   English   中英

對於相同的輸入,String.isEmpty() 返回 true 並且 String.isBlank() 返回 false 的任何場景?

[英]Any scenario in which String.isEmpty() returns true and String.isBlank() returns false for the same input?

String.isBlank()等同於String.isEmpty() + *whitespace only check*嗎? 在查看String.isBlank()的源代碼時,它會在長度為零時返回 true。 但我想知道是否存在isEmpty()返回true並且isBlank()對於相同輸入返回false任何場景。

文檔說isEmpty()

當且僅當 length() 為 0 時返回 true。

isBlank()的文檔:

如果字符串為空或僅包含空白代碼點,則返回true ,否則返回 false。

強調我的。

所以isBlank()似乎也涵蓋了isEmpty()所有情況。

只存在一個字符串,其中isEmpty()返回true ,即空字符串"" 如果提供空字符串作為參數,則isBlank()返回true

所以:沒有 不存在isEmpty()返回 true 且isBlank()返回 false 的情況。

如果是這樣,則它是一個軟件錯誤,前提是文檔描述了預期的行為。 否則你得問問薛定諤。

至少有一個輸入, isEmpty()isBlank()產生相反的結果,那就是一個空格:

public class MyClass {
    public static void main(String args[]) {
      String s = " ";
      System.out.println("isBlank: "+s.isBlank());
      System.out.println("isEmpty: "+s.isEmpty());
    }
}

輸出:

isBlank: 真

isEmpty: 假

isBlank()返回 false 並且isEmpty返回 true 的相反情況不會發生,因為根據文檔isBlank()僅在字符串為空或僅包含空白代碼點時返回 true,並且isEmpty()返回 true,如果,並且僅當length()為 0 時。並且不存在length()為 0 的字符串不被視為空白的情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM