在 Java 中將布爾值轉換為字符串
一、概述
在 Java 中,我們經常需要將Boolean
值轉換為String
表示形式。例如,這對於在用戶界面中顯示值或將值寫入文件或數據庫非常有用。
在本快速教程中,我們將探討將布爾值轉換為字符串的各種方法。
二、問題簡介
將布爾值轉換為字符串在 Java 中是一項簡單的任務。但是,正如我們所知, Java 中有兩種布爾類型:原始boolean
和對象Boolean
。
從原始boolean
值和Boolean
對像到字符串的轉換非常相似。但是,有幾點我們應該考慮。
那麼接下來,讓我們從原始boolean
值開始,看看如何將它們轉換為字符串。
為簡單起見,我們將使用單元測試斷言來驗證轉換結果是否符合預期。
3. 將原始boolean
值轉換為String
原始boolean
變量可以攜帶true
或false
。因此,我們可以使用if-else
語句將其轉換為字符串。此外,在 Java 中,三元運算符(也稱為條件運算符)是編寫if-else
語句的一種簡寫方式。
因此,讓我們使用三元運算符使轉換代碼緊湊且可讀:
boolean primitiveBoolean = true;
assertEquals("true", primitiveBoolean ? "true" : "false");
primitiveBoolean = false;
assertEquals("false", primitiveBoolean ? "true" : "false");
上面的代碼非常簡單。如我們所見,我們將true
值轉換為字符串“ true
”,將false
轉換為“ false
”。這是一種標準的轉換方式。但是,有時候,我們可能希望重新定義轉換後的字符串,例如true
為“YES”
, false
為“NO”
。然後,我們可以簡單地更改三元表達式中的字符串。
當然,如果我們需要多次調用轉換,我們可以將其包裝在一個方法中。接下來我們看一個將boolean
值轉換為自定義字符串的例子:
String optionToString(String optionName, boolean optionValue) {
return String.format("The option '%s' is %s.", optionName, optionValue ? "Enabled" : "Disabled");
}
optionToString()
方法 接受布爾選項的名稱及其值來構建選項狀態的描述:
assertEquals("The option 'IgnoreWarnings' is Enabled.", optionToString("IgnoreWarnings", true));
4. 使用Boolean.toString()
方法將Boolean
對象轉換為String
現在,讓我們看看如何將Boolean
變量轉換為字符串。 Boolean
類提供了Boolean.toString()
方法來將Boolean
轉換為String
:
Boolean myBoolean = Boolean.TRUE;
assertEquals("true", myBoolean.toString());
myBoolean = Boolean.FALSE;
assertEquals("false", myBoolean.toString());
如果我們仔細看看Boolean.toString()
方法,我們會發現它的實現與我們的三元解決方案完全相同:
public String toString() {
return this.value ? "true" : "false";
}
對象Boolean
類似於原始對象。但是,除了true
和false
之外,它還可以是null
。因此,在調用Boolean.toString()
方法之前,我們需要確保Boolean
變量不為null
。否則,將引發NullpointerException
:
Boolean nullBoolean = null;
assertThrows(NullPointerException.class, () -> nullBoolean.toString());
5. 使用String.valueOf()
方法將Boolean
對象轉換為String
我們已經看到標準庫中的Boolean.toString()
可以將Boolean
變量轉換為字符串。或者,我們可以使用String
類中的valueOf()
方法來解決問題:
Boolean myBoolean = Boolean.TRUE;
assertEquals("true", String.valueOf(myBoolean));
myBoolean = Boolean.FALSE;
assertEquals("false", String.valueOf(myBoolean));
值得一提的是, String.valueOf()
方法是 null 安全的。換句話說,如果我們的Boolean
變量是null
, String.valueOf()
產生“null”
而不是拋出NullPointerException
:
Boolean nullBoolean = null;
assertEquals("null", String.valueOf(nullBoolean));
這是因為String.valueOf(Object
obj) 方法執行空值檢查:
public static String valueOf(Object obj) {
return obj == null ? "null" : obj.toString();
}
六,結論
在本文中,我們探討了在 Java 中將布爾值轉換為字符串的各種方法。
我們已經討論了原始boolean
和對象Boolean
情況:
-
boolean
——使用三元運算符 -
Boolean
——我們可以使用Boolean.toString()
方法(需要空值檢查)或String.valueOf()
方法(空值安全)
與往常一樣,此處提供的所有代碼片段都可以在 GitHub 上找到。