将解析的字符串格式化为 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`格式化为渲染字符串中的新行[重复]