将解析的字符串格式化为 Long [重复]

Posted

技术标签:

【中文标题】将解析的字符串格式化为 Long [重复]【英文标题】:Formatting a parsed String to Long [duplicate] 【发布时间】:2018-02-02 23:43:45 【问题描述】:

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

例如:

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

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

412456839

我想打印与 ph 相同的内容。我总是可以的

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

但是有办法格式化吗?

【问题讨论】:

【参考方案1】:

使用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);

【讨论】:

在格式字符串中,您可以使用%n 作为系统相关的换行符(可能是\n\r)而不是\n【参考方案2】:

您可以创建一个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);

【讨论】:

以上是关于将解析的字符串格式化为 Long [重复]的主要内容,如果未能解决你的问题,请参考以下文章

将文本文件重新格式化为一行字符串[重复]

html5 - 无法将`\n`格式化为渲染字符串中的新行[重复]

Dart - 将字符串日期格式化为日期时间

Jackson 将日期字符串反序列化为 Long

无法格式化为 XMLGregorianCalendar [重复]

在jQuery中将整数格式化为字符串数字[重复]