右边有零填充

时间:2012-10-18 19:44:53

标签: java string-formatting

很抱歉,如果这个问题已经提出,我已经进行了深入的搜索而且没有任何内容。

现在,我知道:

String.format("%05d", price);

将左边的零填充我的价格,因此价格为25将导致 00025

如果我想将它们填充到右边,那么结果是 25000 ?如何使用 String.format 模式执行此操作?

7 个答案:

答案 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