我正在尝试格式化字符串,如下所示
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
的摘录非常感谢
答案 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 是一个非负十进制整数,表示要写入输出的最小数字。”