【轉】 StringUtils中 isNotEmpty 和isNotBlank的區別

来源:http://www.cnblogs.com/luffyu/archive/2016/10/08/5937861.html
-Advertisement-
Play Games

【轉自】http://blog.csdn.net/foamflower/article/details/5713604 isNotEmpty將空格也作為參數,isNotBlank則排除空格參數 StringUtils方法的操作對象是java.lang.String類型的對象,是JDK提供的Strin ...


【轉自】http://blog.csdn.net/foamflower/article/details/5713604

 

isNotEmpty將空格也作為參數,isNotBlank則排除空格參數

StringUtils方法的操作對象是java.lang.String類型的對象,是JDK提供的String類型操作方法的補充,並且是null安全的(即如果輸入參數String為null則不會拋出NullPointerException,而是做了相應處理,例如,如果輸入為null則返回也是null等,具體可以查看源代碼)。

除了構造器,StringUtils中一共有130多個方法,並且都是static的,所以我們可以這樣調用StringUtils.xxx()

1. public static boolean isEmpty(String str)
判斷某字元串是否為空,為空的標準是str==null或str.length()==0
下麵是StringUtils判斷是否為空的示例:
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false //註意在StringUtils中空格作非空處理
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false

2. public static boolean isNotEmpty(String str)
判斷某字元串是否非空,等於!isEmpty(String str)
下麵是示例:
StringUtils.isNotEmpty(null) = false
StringUtils.isNotEmpty("") = false
StringUtils.isNotEmpty(" ") = true
StringUtils.isNotEmpty(" ") = true
StringUtils.isNotEmpty("bob") = true
StringUtils.isNotEmpty(" bob ") = true

3. public static boolean isBlank(String str)
判斷某字元串是否為空或長度為0或由空白符(whitespace)構成
下麵是示例:
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("\t \n \f \r") = true //對於製表符、換行符、換頁符和回車符StringUtils.isBlank()均識為空白符
StringUtils.isBlank("\b") = false //"\b"為單詞邊界符
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false

4. public static boolean isNotBlank(String str)
判斷某字元串是否不為空且長度不為0且不由空白符(whitespace)構成,等於!isBlank(String str)
下麵是示例:
StringUtils.isNotBlank(null) = false
StringUtils.isNotBlank("") = false
StringUtils.isNotBlank(" ") = false
StringUtils.isNotBlank(" ") = false
StringUtils.isNotBlank("\t \n \f \r") = false
StringUtils.isNotBlank("\b") = true
StringUtils.isNotBlank("bob") = true
StringUtils.isNotBlank(" bob ") = true

5. public static String trim(String str)
去掉字元串兩端的控制符(control characters, char <= 32),如果輸入為null則返回null
下麵是示例:
StringUtils.trim(null) = null
StringUtils.trim("") = ""
StringUtils.trim(" ") = ""
StringUtils.trim(" \b \t \n \f \r ") = ""
StringUtils.trim(" \n\tss \b") = "ss"
StringUtils.trim(" d d dd ") = "d d dd"
StringUtils.trim("dd ") = "dd"
StringUtils.trim(" dd ") = "dd"

6. public static String trimToNull(String str)
去掉字元串兩端的控制符(control characters, char <= 32),如果變為null或"",則返回null
下麵是示例:
StringUtils.trimToNull(null) = null
StringUtils.trimToNull("") = null
StringUtils.trimToNull(" ") = null
StringUtils.trimToNull(" \b \t \n \f \r ") = null
StringUtils.trimToNull(" \n\tss \b") = "ss"
StringUtils.trimToNull(" d d dd ") = "d d dd"
StringUtils.trimToNull("dd ") = "dd"
StringUtils.trimToNull(" dd ") = "dd"

7. public static String trimToEmpty(String str)
去掉字元串兩端的控制符(control characters, char <= 32),如果變為null或"",則返回""
下麵是示例:
StringUtils.trimToEmpty(null) = ""
StringUtils.trimToEmpty("") = ""
StringUtils.trimToEmpty(" ") = ""
StringUtils.trimToEmpty(" \b \t \n \f \r ") = ""
StringUtils.trimToEmpty(" \n\tss \b") = "ss"
StringUtils.trimToEmpty(" d d dd ") = "d d dd"
StringUtils.trimToEmpty("dd ") = "dd"
StringUtils.trimToEmpty(" dd ") = "dd"

8. public static String strip(String str)
去掉字元串兩端的空白符(whitespace),如果輸入為null則返回null
下麵是示例(註意和trim()的區別):
StringUtils.strip(null) = null
StringUtils.strip("") = ""
StringUtils.strip(" ") = ""
StringUtils.strip(" \b \t \n \f \r ") = "\b"
StringUtils.strip(" \n\tss \b") = "ss \b"
StringUtils.strip(" d d dd ") = "d d dd"
StringUtils.strip("dd ") = "dd"
StringUtils.strip(" dd ") = "dd"

9. public static String stripToNull(String str)
去掉字元串兩端的空白符(whitespace),如果變為null或"",則返回null
下麵是示例(註意和trimToNull()的區別):
StringUtils.stripToNull(null) = null
StringUtils.stripToNull("") = null
StringUtils.stripToNull(" ") = null
StringUtils.stripToNull(" \b \t \n \f \r ") = "\b"
StringUtils.stripToNull(" \n\tss \b") = "ss \b"
StringUtils.stripToNull(" d d dd ") = "d d dd"
StringUtils.stripToNull("dd ") = "dd"
StringUtils.stripToNull(" dd ") = "dd"

10. public static String stripToEmpty(String str)
去掉字元串兩端的空白符(whitespace),如果變為null或"",則返回""
下麵是示例(註意和trimToEmpty()的區別):
StringUtils.stripToNull(null) = ""
StringUtils.stripToNull("") = ""
StringUtils.stripToNull(" ") = ""
StringUtils.stripToNull(" \b \t \n \f \r ") = "\b"
StringUtils.stripToNull(" \n\tss \b") = "ss \b"
StringUtils.stripToNull(" d d dd ") = "d d dd"
StringUtils.stripToNull("dd ") = "dd"
StringUtils.stripToNull(" dd ") = "dd"


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Android的UI訪問是沒有加鎖的,這樣在多個線程訪問UI是不安全的。所以Android中規定只能在UI線程中訪問UI。 但是有沒有極端的情況?使得我們在子線程中訪問UI也可以使程式跑起來呢?接下來我們用一個例子去證實一下。 新建一個工程,activity_main.xml佈局如下所示: 很簡單, ...
  • 最前面的話:Smobiler是一個在VS環境中使用.Net語言來開發APP的開發平臺,也許比Xamarin更方便 一、目標樣式 我們要實現上圖中的效果,需要如下的操作: 1.從工具欄上的“Smobiler Components”拖動一個GaugeView控制項到窗體界面上 2.修改GaugeView控 ...
  • ASP.NET Core MVC 控制器應通過它們的構造器明確的請求它們的依賴關係。在某些情況下,單個控制器的操作可能需要一個服務,在控制器級別上的請求可能沒有意義。在這種情況下,你也可以選擇將服務作為 action 方法的參數。 ...
  • VS "15" 預覽 5 給 VB 帶來了更新。 * 值元組 ValueTuple * 二進位數字和數字分隔符 * 支持使用 ByRef 返回類型 ...
  • ASP.NET MVC 過濾器 可在執行管道的前後特定階段執行代碼。過濾器可以配置為全局有效、僅對控制器有效或是僅對 Action 有效。 ...
  • 一、綜述 SuperIO(SIO)定位在PC終端(上位機)應用,它只有一個服務實例,配置參數是全局屬性。但是,ServerSuperIO(SSIO)與SuperIO(SIO)定位不一樣,SSIO定位在伺服器端,不管是串口通訊模式,還是網路通訊模式,都支持多服務實例,所以每個服務實例都有自己的配置參數 ...
  • 今天寫了一個英漢詞典小程式,我加了好多註釋,適合初學者一起參考,哪裡寫的不好請幫忙指出,一起學習進步。。 這裡用到了,泛型,泛型字典,一些控制項的操作,split的應用,數組的應用,時間間隔,linkLabel的使用。。 using System; using System.Collections.G ...
  • 註明:相關資料參考來自網路 PHP中使用fopen()函數打開文件,函數語法fopen(filename,mode,include_path,context),filename為要打開的文件,mode為訪問類型,include_path和context為可選。 mode說明 r 只讀方式打開,在文件 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...