用format()方法代替字符串拼接

用format()方法代替字符串拼接

前言

最近看到一位同事用String.format()通过转换符的方式来替代字符串拼接,觉得很有意思,稍微对这种字符串拼接方法做了一下解了。

Formatter.format()方法
public static String format(String format, Object... args)
public static String format(Locale l, String format, Object... args)

public PrintStream format(String format, Object ... args)
public PrintStream format(Locale l, String format, Object... args)

public PrintStream printf(String format, Object ... args)
public PrintStream printf(Locale l, String format, Object... args)

上述以及方法实际上在源码中最终都是调用了Formatter对象中format()方法。

1.转换符

转 换 符说 明示 例
%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散列码 HashCode
%%百分比类型
%n换行符
%tx`日期与时间类型(x代表不同的日期与时间转换符)

2.搭配转换符的标志

标 志说 明示 例结 果
+为正数或者负数添加符号(“%+d与%d%n”, 99,-99)+99与-99
左对齐(“%-5d”,15)|15 |
0数字前面补0(“%04d”, 99)0099
空格在整数之前添加指定数量的空格(“% 4d”, 99)| 99|
,以“,”对数字分割(“%,f%n”, 9876.12)9,876.120000
(使用括号包含负数(“%(f”, -99.99)(99.990000)
#如果是浮点数则包含小数点,如果是16进制或8进制则添加0x或0(“%#x”, 99),(“%#o”, 99)0x63,0143
<格式化前一个转换符所描述的参数(“%f和%<3.3f”, 99.45)99.450000和99.450
$被格式化的参数索引(“%2$d,%1$s”, 1,”B”)B,1

3.日期和时间转换符的标志
通过转换符我们还可以对日期进行格式化输出

转 换 符说 明示 例
c包括全部日期和时间信息星期六 十月 27 14:21:20 CST 2007
F“年-月-日”格式2007-10-27
D“月/日/年”格式10/27/07
r“HH:MM:SS PM”格式(12时制)02:25:51 下午
T“HH:MM:SS”格式(24时制)14:28:16
R“HH:MM”格式(24时制)14:28

日期和时间的转换还有很多扩展这里就不做过多介绍啦

参考

1.java字符串格式化:String.format()方法的使用
2.String.format()用法

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值