Java String Format数组

时间:2013-04-09 07:52:38

标签: java arrays string format

我正在尝试格式化字符串,如下所示

System.out.println("unique number is :"+ number[b]);
System.out.println("unique number formatted to 28  is :"+ String.format("%-28s",number[b]).replace(' ','0'))

当“number”是一个短于28的字符串时,没有问题,它将0添加到左边,但是当字符串长于28时,dosnt会缩短它,我做错了什么?

它是一个循环BTW

的摘录

非常感谢

2 个答案:

答案 0 :(得分:1)

格式化程序不会剪切String,它只会确保它至少使用28个空格。

您必须执行以下操作:

if (str.length() > 28) {
    str = str.subString(0, 28);
}

或者

if (str.length() > 28) {
    str = str.subString(str.length() - 28, str.length());
}

限制尺寸。

答案 1 :(得分:0)

format类的javadoc显示{{1}}无法正常工作的原因。它说:

  

“可选 width 是一个非负十进制整数,表示要写入输出的最小数字。”