StringUtils 是 JDK String 方法的強力補充,所有方法均為 static 且 null-safe(傳入 null 不拋 NPE)。本文詳細對比核心方法差異。
| 輸入值 | isEmpty | isNotEmpty | isBlank | isNotBlank |
|---|---|---|---|---|
| null | true | false | true | false |
| "" | true | false | true | false |
| " " | false | true | true | false |
| "\t\n\f\r" | false | true | true | false |
| "\b" | false | true | false | true |
| "bob" | false | true | false | true |
| " bob " | false | true | false | true |
null 或 length()==0,空白字元視為非空null、length()==0 或 全由空白字元組成(包含空格、\t、\n、\f、\r),\b(單字邊界)不視為空白| 方法 | 處理字元 | null 輸入 | 結果為空時 |
|---|---|---|---|
| trim() | 控制字元 (char ≤ 32) | 返回 null | 返回 "" |
| trimToNull() | 控制字元 (char ≤ 32) | 返回 null | 返回 null |
| trimToEmpty() | 控制字元 (char ≤ 32) | 返回 "" | 返回 "" |
| strip() | 空白字元 (Character.isWhitespace) | 返回 null | 返回 "" |
| stripToNull() | 空白字元 | 返回 null | 返回 null |
| stripToEmpty() | 空白字元 | 返回 "" | 返回 "" |
String s = " \b \t \n \f \r ";
StringUtils.trim(s) // "" - 移除所有控制字元含 \b
StringUtils.strip(s) // "\b" - 僅移除空白字元,保留 \b
trim():基於 char ≤ 32,範圍較廣(含 \b、\x00 等)strip():基於 Character.isWhitespace(),符合 Unicode 空白字元標準,更精確isNotBlank()isNotEmpty()stripToEmpty() 或 stripToNull()String.trim(),它不支援 null 且行為與 strip() 不同精準選擇 StringUtils 方法,能寫出更健壯、語意更清晰的字串處理程式碼。