产生格式化输出的每个方法都需要格式字符串和参数列表。格式字符串是一个 String,它可以包含固定文本以及一个或多个嵌入的格式说明符。请考虑以下示例:
Calendar c = ...;
String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c);
Java 语言的格式化输出在很大程度上受到 C 语言 printf 的启发。虽然一些格式字符串与 C 类似,但已进行了某些定制,以适应 Java 语言,并且利用了其中一些特性。此外,Java 的格式比 C 的格式更严格;例如,如果转换与标志不兼容,则会抛出异常。在 C 中,不适用的标志会被忽略。这样,便于 C 程序员识别这些格式字符串,而又不必与 C 中的那些标志完全兼容。
Java中字符串格式化分为三种类型,它们的语法参考如下:
1、常规类型、字符类型和数值类型的格式说明符的语法
%[argument_index$][flags][width][.precision]conversion
(1)、argument_index
可选的,是一个十进制整数,用于表明参数在参数列表中的位置。第一个参数由 "1$" 引用,第二个参数由 "2$" 引用,依此类推。
(2)、flags
可选的,是修改输出格式的字符集。有效标志集取决于转换类型。
(3)、width
可选的,是一个非负十进制整数,表明要向输出中写入的最少字符数。
(4)、precision
可选的,是一个非负十进制整数,通常用来限制字符数。特定行为取决于转换类型。
(5)、conversion
必须的,是一个表明应该如何格式化参数的字符。给定参数的有效转换集取决于参数的数据类型。
2、用来表示日期和时间类型的格式说明符的语法
%[argument_index$][flags][width]conversion
(1)、argument_index
同上。
(2)、flags
同上。
(3)、width
同上。
(4)、conversion
必须的,是一个由两字符组成的序列。第一个字符是 't' 或 'T'。第二个字符表明所使用的格式。这些字符类似于但不完全等同于那些由 GNU date 和 POSIX strftime(3c) 定义的字符。
3、与参数不对应的格式说明符的语法
%[flags][width]conversion
(1)、flags
同上。
(2)、width
同上。
(3)、conversion
必须的,是一个表明要在输出中所插内容的字符。
标签:字符,conversion,格式化,语法,width,flags,格式,Java From: https://www.cnblogs.com/it001xyz/p/18228277