- Scala編程實戰(原書第2版)
- (美)阿爾文·亞歷山大
- 635字
- 2024-04-15 12:05:16
2.5 字符串輸出的格式化
問題
你想格式化字符串的輸出,包括包含了整數、浮點數、雙精度浮點數以及字符的字符串。
解決方案
使用f插值器的printf風格字符串格式化。許多配置選項在下面的例子中有展示。
日期/時間格式化
日期和時間的格式化將在3.11節中討論。
格式化字符串
字符串可以用%s格式符進行格式化。下面的例子展示了如何對字符串進行格式化,包括如何在一定的空間內對其進行左對齊和右對齊:

我發現當把變量名放在大括號里時,可以讓格式化字符串的可讀性更高,所以在本書剩余部分將會使用這種風格:

浮點數格式化
浮點數是用%f格式符進行輸出的。下面的例子包括了Double和Float類型的值,展示了浮點數格式化的效果:

這些例子展示了Double類型值的格式化方法,同樣的語法對Float類型值也適用:

整數格式化
整數是用%d格式符進行輸出的。下面的例子展示了整數填充和調整的效果:

補0的方法
下面的例子展示了給整數補0的效果:


字符格式化
字符是用%c格式符進行輸出的。下面的例子展示了格式化字符填充和調整的效果:

f用于多行字符串
需要注意的是,f插值器同樣對多行字符串有效,如下所示:

這段代碼的輸出結果如下:

如2.2節提到的,當使用多行字符串時,也不需要轉義單引號和雙引號。
討論
表2-1展示了常見的printf風格的格式符。
表2-1:常用printf風格的格式符

表2-1:常用printf風格的格式符(續)

為了更好地理解這些格式符的工作原理,下面的例子展示了如何使用%%和$$:

表2-2展示了在格式化字符串時可以使用的特殊字符。
表2-2:能在格式化字符串時使用的字符序列

另見
·java.util.Formatter類文檔(https://oreil.ly/PWCim)展示了所有可用的格式化字符。