将解析后的String格式化为Long

时间:2017-08-25 00:16:24

标签: java

如何格式化已解析的字符串?

例如:

ph = "0412456839";
n = Long.parseLong(ph);

当我打印n时,我得到(没有0):

412456839

我想和ph打印一样。我总能做到

System.out.println("0"+n);

但有没有办法格式化呢?

2 个答案:

答案 0 :(得分:3)

使用java.util.Formatter

System.out.printf("%010d\n", n);

    % 0 10 d
      ^  ^ ^
      |  | decimal
      |  width
      zero-pad

如果您需要String中的输出而不是写入System.out,请使用

String s = String.format("%010d", n);

答案 1 :(得分:0)

您可以创建DecimalFormat。这将允许您使用自己的格式规则将数字格式化为字符串。在这种情况下,它将其格式化为包含前面零的10位数字。

String ph = "0412456839";
Long n = Long.parseLong(ph);
String formattedN = new DecimalFormat("0000000000").format(n);
System.out.println(formattedN);

如果您使用的是Apache Commons,则可以使用:

   int paddingLength = 10;
   String paddingCharacter = "0";
   StringUtils.leftPad("" + n, paddingLength, paddingCharacter);