String.format()用法

JDK1.5开始String类中提供了一个非常有用的方法String.format(String format, Object ... args)

查看源码得知其实是调用了java.util.Formatter.format(String, Object...)方法

public static String format(String format, Object ... args) {
    return new Formatter().format(format, args).toString();
}

查看JDK文档得知,String.format方法的第一个参数是有个公式可以套的

    %[argument_index$][flags][width][.precision]conversion

这里我们只要牢记这个公式就可以,下面说下每个颜色所代表的含义

argument_index: 可选,是一个十进制整数,用于表明参数在参数列表中的位置。第一个参数由 "1$" 引用,第二个参数由 "2$" 引用,依此类推。

flags: 可选,用来控制输出格式

width: 可选,是一个正整数,表示输出的最小长度

precision:可选,用来限定输出字符数

conversion:必须,用来表示如何格式化参数的字符

 

显示不同转换符实现不同数据类型到字符串的转换,如图所示。

 

转  换  符

说    明 

示    例

%s

字符串类型

"mingrisoft"

%c

字符类型

'm'

%b

布尔类型

true

%d

整数类型(十进制)

99

%x

整数类型(十六进制)

FF

%o

整数类型(八进制)

77

%f

浮点类型

99.99

%a

十六进制浮点类型

FF.35AE

%e

指数类型

9.38e+5

%g

通用浮点类型(f和e类型中较短的)

 

%h

散列码

 

%%

百分比类型

%n

换行符

 

%tx

日期与时间类型(x代表不同的日期与时间转换符

 

 

 

搭配转换符的标志,如图所示。

 

 

标    志

说    明

示    例

结    果

+

为正数或者负数添加符号

("%+d",15)

+15

左对齐

("%-5d",15)

|15   |

0

数字前面补0

("%04d", 99)

0099

空格

在整数之前添加指定数量的空格

("% 4d", 99)

|  99|

,

以“,”对数字分组

("%,f", 9999.99)

9,999.990000

(

使用括号包含负数

("%(f", -99.99)

(99.990000)

#

如果是浮点数则包含小数点,如果是16进制或8进制则添加0x或0

("%#x", 99)

("%#o", 99)

0x63

0143

格式化前一个转换符所描述的参数

("%f和%<3.2f", 99.45)

99.450000和99.45

$

被格式化的参数索引

("%1$d,%2$s", 99,"abc")

99,abc

 

posted @ 2018-06-29 11:15  南望孤笑  阅读(1617)  评论(0编辑  收藏  举报