StringBuilder sb = new StringBuilder();
// Send all output to the Appendable object sb
Formatter formatter = new Formatter(sb, Locale.US);
// Explicit argument indices may be used to re-order output.
formatter.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d")
// -> " d c b a"
在这种情况下,为什么在$后面附加一个2?
发布于 2013-04-29 17:22:04
%
:格式化字符串
4$
:第四个值参数
2
:宽度(打印参数时的长度)
s
:这是一个字符串参数转换
例如,以下代码段:
StringBuffer sb=new StringBuffer();
Formatter formatter=new Formatter(sb,Locale.UK);
formatter.format("-%4$5s-%3$5s-%2$5s-%1$5s-", "a", "b", "c", "d");
System.out.println(sb);
生成以下输出:
- d- c- b- a-
(每个参数的宽度为5个字符,用空格填充)
并将5
替换为2
,将产生以下输出:
- d- c- b- a-
看到区别了吗?:)
https://stackoverflow.com/questions/1915074
复制相似问题