我知道我可以使用以下方法填充空格:
String.format("%6s", "abc"); // ___abc ( three spaces before abc
但我似乎无法找到如何制作:
000abc
编辑:
%06s
在问这个之前我试过了。只是在出现更多(未尝试的)答案之前让您知道。
目前我有:String.format("%6s", data ).replace(' ', '0' )
但我认为必须存在更好的方法。
您真的应该考虑使用Apache Commons Lang 的StringUtils来执行此类字符串操作任务,因为您的代码将变得更具可读性。你的例子是StringUtils.leftPad("abc", 6, ' ');
无论如何,为这类东西找到一个你喜欢的图书馆,并了解你闪亮的新工具箱里有什么,这样你就可以重新发明更少的轮子(有时有平面)。我更喜欢Guava而不是 Apache Commons。在这种情况下,它们是等价的:
Strings.padStart("abc",6,'0');
尝试滚动您自己的静态实用程序方法
public static String leftPadStringWithChar(String s, int fixedLength, char c){
if(fixedLength < s.length()){
throw new IllegalArgumentException();
}
StringBuilder sb = new StringBuilder(s);
for(int i = 0; i < fixedLength - s.length(); i++){
sb.insert(0, c);
}
return sb.toString();
}
然后像这样使用它
System.out.println(leftPadStringWithChar("abc", 6, '0'));
输出
000abc
快速而肮脏(将“000....00”字符串的长度设置为您支持的最大长度):
public static String lefTpadWithZeros(String x,int minlen) {
return x.length()<minlen ?
"000000000000000".substring(0,minlen-x.length()) + x : x;
}
String.format("%06s", "abc");