上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
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)展示了所有可用的格式化字符。