右边用零填充

对不起,如果这个问题已经提出,我已经深入搜索,没有任何内容。

现在,我知道:

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@ 

如果你想没有格式或任何function,那么使用这个简单的技巧System.out.println(price+"000");

使用此function进行右侧填充。

 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