自己在这里总结了三种占位符形式:看下面代码即可
String stringFormat = "lexical error at position %s, encountered %s, expected %s ";
String messageFormat ="lexical error at position {0}, encountered {1}, expected {2}";
System.out.println(String.format(stringFormat, 123, 100, 456));
System.out.println(MessageFormat.format(messageFormat, new Date(), 100, 456));
以上是两种常见的使用形式,这里还有另一种:
%n$ms:代表输出的是字符串,n代表是第几个参数,设置m的值可以在输出之前放置空格
%n$md:代表输出的是整数,n代表是第几个参数,设置m的值可以在输出之前放置空格,也可以设为0m,在输出之前放置m个0
%n$mf:代表输出的是浮点数,n代表是第几个参数,设置m的值可以控制小数位数,如m=2.2时,输出格式为00.00
使用举例:
String format = "%1$-25s%2$-48s";
System.out.format(format, "111","222");