右边用零填充
对不起,如果这个问题已经提出,我已经深入搜索,没有任何内容。
现在,我知道:
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