2013-04-09 99 views
0

我试图如下Java的字符串格式阵列

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

有当“数字”是一个字符串是超过28较短没有问题,格式化字符串,它增加了0的左边,但是当字符串比28更长,它缩短了它,我做错了什么?

其从一个循环的提取物BTW

非常感谢

+1

你想如何缩短?通过缩小数字缩短数字通常没有意义。 – 2013-04-09 07:55:57

回答

1

格式化不砍你String,它只是确保它至少使用28位。

你将不得不做这样的事情:

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

也许

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

限制大小。

0

之所以format像您期望的工作不从的javadoc为java.util.Formatter类清楚。它说:

“可选宽度是指示最小字符数要写入到输出一个非负十进制整数”。