很抱歉,如果这个问题已经提出,我已经进行了深入的搜索而且没有任何内容。
现在,我知道:
String.format("%05d", price);
将左边的零填充我的价格,因此价格为25将导致 00025
如果我想将它们填充到右边,那么结果是 25000 ?如何使用仅 String.format 模式执行此操作?
答案 0 :(得分:39)
您可以使用:
String.format("%-5s", price ).replace(' ', '0')
我可以只使用格式模式吗?
String.format
使用Formatter.justify
就像String.printf
方法一样。
从post开始,您将看到输出空间是硬编码的,因此需要使用String.replace
。
答案 1 :(得分:5)
试试这个:
String RightPaddedString = org.apache.commons.lang.StringUtils.rightPad(InputString,NewStringlength,'paddingChar');
答案 2 :(得分:2)
请尝试阅读此文档,查看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);
}
答案 3 :(得分:1)
致beginnersbook.com的信用,这是解决问题的有效方法:
<img ng-src="{{response.path}}"/>
,输出为:
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');
}
}
答案 4 :(得分:0)
如果你想没有格式或任何功能,那么使用这个简单的技巧
System.out.println(price+"000");
答案 5 :(得分:0)
使用此功能进行右边填充。
private String rightPadding(String word, int length, char ch) {
return (length > word.length()) ? rightPadding(word + ch, length, ch) : word;
}
怎么用?
rightPadding("25", 5, '0');
答案 6 :(得分:0)
就我而言,我只使用原生Java解决了这个问题。
StringBuilder sb = new StringBuilder("1234");
sb.setLength(9);
String test = sb.toString().replaceAll("[^0-9]", "0");
System.out.println(test);
所以它打印出来:123400000