抱歉如果这个问题已经被提出,我进行了深入搜索但是没有找到答案。
现在,我知道:
String.format("%05d", price);
我想在价格左边填充零,使价格25变成00025
如果我想在右边填充,使结果为25000,我该如何使用String.format格式仅实现此功能?
抱歉如果这个问题已经被提出,我进行了深入搜索但是没有找到答案。
现在,我知道:
String.format("%05d", price);
我想在价格左边填充零,使价格25变成00025
如果我想在右边填充,使结果为25000,我该如何使用String.format格式仅实现此功能?
你可以使用:
String.format("%-5s", price ).replace(' ', '0')
我可以仅使用格式模式来做到这点吗?
String.format
使用 Formatter.justify
来对齐,就像 String.printf
方法一样。从这篇帖子中可以看到,输出空格是硬编码的,所以必须使用 String.replace
。String RightPaddedString = org.apache.commons.lang.StringUtils.rightPad(InputString,NewStringlength,'paddingChar');
StringUtils
}}是否可以帮助您。import org.apache.commons.lang3.StringUtils;
public static void main(String[] args) {
String str = "123";
str = StringUtils.leftPad(str,10,"0"); //you can also look the rightPad function.
System.out.println(str);
}
在我的情况下,我只使用了本地的Java来解决这个问题。
StringBuilder sb = new StringBuilder("1234");
sb.setLength(9);
String test = sb.toString().replaceAll("[^0-9]", "0");
System.out.println(test);
private String rightPadding(String word, int length, char ch) {
return (length > word.length()) ? rightPadding(word + ch, length, ch) : word;
}
rightPadding("25", 5, '0');
感谢beginnersbook.com提供的帮助,这是一个解决问题的有效方法:
public class PadRightTest {
public static void main(String[] argv) {
System.out.println("#" + rightPadZeros("mystring", 10) + "@");
System.out.println("#" + rightPadZeros("mystring", 15) + "@");
System.out.println("#" + rightPadZeros("mystring", 20) + "@");
}
public static String rightPadZeros(String str, int num) {
return String.format("%1$-" + num + "s", str).replace(' ', '0');
}
}
#mystring00@
#mystring0000000@
#mystring000000000000@
System.out.println(price+"000");