使用java.lang.String.format()填充给定字符的字符串

时间:2013-10-28 04:31:05

标签: java string string.format

我有一个字符串,我希望将任何给定字符的字符串填充到给定长度。 当然我可以写一个循环语句并完成工作,但这不是我想要的。

我使用的一种方法是

myString = String.format("%1$"+ n + "s", myString).replace(' ', newChar);

这种方法很好,除非myString已经有空格。使用String.format()

是否有更好的解决方案

2 个答案:

答案 0 :(得分:2)

您可以尝试使用 Commons StringUtils rightPadleftPad方法,如下所示。

StringUtils.leftPad("test", 8, 'z');

输出,

  

zzzztest

答案 1 :(得分:0)

如果你的字符串不包含'0'符号,你可以这样做:

 int n = 30; // assert that n > test.length()
 char newChar = 'Z';
 String test = "string with no zeroes";
 String result = String.format("%0" + (n - test.length()) + "d%s", 0, test)
     .replace('0', newChar); 
 // ZZZZZZZZZstring with no zeroes

或如果确实如此:

 test = "string with 0 00";
 result = String.format("%0" + (n - test.length()) + "d", 0).replace('0', newChar)
     + test;
 // ZZZZZZZZZZZZZZstring with 0 00

 // or equivalently:
 result = String.format("%" + (n - test.length()) + "s", ' ').replace(' ', newChar) 
     + test;