抱歉,如果这个问题已经提出,我已经进行了深入搜索,但什么也没有。
现在,我知道了:
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');
请尝试阅读此文档,看看 apache commons 库是否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);
}
归功于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@
使用此函数进行右填充。
private String rightPadding(String word, int length, char ch) {
return (length > word.length()) ? rightPadding(word + ch, length, ch) : word;
}
如何使用?
rightPadding("25", 5, '0');
就我而言,我仅使用本机 Java 解决了这个问题。
StringBuilder sb = new StringBuilder("1234");
sb.setLength(9);
String test = sb.toString().replaceAll("[^0-9]", "0");
System.out.println(test);
所以它打印出来:123400000
如果您想不使用格式或任何功能,请使用这个简单的技巧
System.out.println(price+"000");