我有一个字符串,我想用任何给定的字符填充这个字符串到给定的长度。当然,我可以编写一个循环语句并完成工作,但这不是我想要的。
我使用的一种方法是
myString = String.format("%1$"+ n + "s", myString).replace(' ', newChar);
这工作正常,除非myString
它已经有一个空间。使用 String.format() 是否有更好的解决方案
我有一个字符串,我想用任何给定的字符填充这个字符串到给定的长度。当然,我可以编写一个循环语句并完成工作,但这不是我想要的。
我使用的一种方法是
myString = String.format("%1$"+ n + "s", myString).replace(' ', newChar);
这工作正常,除非myString
它已经有一个空间。使用 String.format() 是否有更好的解决方案
如果您的字符串不包含“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;