一路探索者

导航

 

 产生格式化输出的每个方法都需要格式字符串和参数列表。格式字符串是一个 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

必须的,是一个表明要在输出中所插内容的字符。

posted on 2024-06-03 10:19  一路探索者  阅读(78)  评论(0)    收藏  举报