字符串模板格式代码详细用法

前言

如何简便地根据一个模板和几个变量生成相应的数个字符串呢?使用 format(String, Object...) 方法格式化字符串无疑是首选的方式。

先来上一段代码(Java),输出一个 mm:ss 格式的时间和对应时区。

1
2
3
int timeM = 5, timeS = 24;
String zone = "CST";
System.out.printf("Now the time is: %2d:%2d %s\n", timeM, timeS, zone);

这段代码会输出 Now the time is: 05:24 CST

可见写法十分简洁和方便,那除了 Java 之外的其他语言可以这样用吗?实际上,这种格式化代码的规范来自 C 的 std::printf(const char*, ...) 函数,理论上适用于一切阳间语言的 printf() 或字符串的 format() 等常见方法。

下面进入正题。

模板的基本用法

字符串形式的格式化代码称为字符串模板,在字符串模板中需要被实际的变量值替换的地方加上格式代码即可。格式代码的写法为 %[flags][width][.precision][length]specifier 其中 specifier 部分为基本格式字符,其余属性均为格式化参数,每个格式字符必须包含一个基本格式字符,并在其与 % 之间选择性添加格式化参数。

基本格式字符

字符 含义 支持的参数
d 十进制形式输出带符号整数(仅负数有符号)
o 八进制形式输出无符号整数(无前缀0)
x/X 十六进制形式输出无符号整数

未完待续


本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 协议 ,转载请注明出处!