为了账号安全,请及时绑定邮箱和手机立即绑定

左填充带有零的字符串

左填充带有零的字符串

慕桂英4014372 2019-10-20 16:12:19
左填充带有零的字符串我也见过类似的问题这里和这里.但我不知道如何用Zero给Pad留下一个字符串。输入:“129018”输出:“0000129018”总输出长度应为10。
查看完整描述

3 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

如果您的字符串仅包含数字,则可以将其设置为整数,然后执行填充操作:

String.format("%010d", Integer.parseInt(mystring));

如果不是我想知道怎么做.


查看完整回答
反对 回复 2019-10-21
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

String paddedString = org.apache.commons.lang.StringUtils.leftPad("129018", 10, "0")

第二个参数是所需的输出长度。

“0”是填充字符。



查看完整回答
反对 回复 2019-10-21
?
慕斯709654

TA贡献1840条经验 获得超5个赞

这将使任何字符串保留到10的总宽度,而不必担心解析错误:

String unpadded = "12345"; String padded = "##########".substring(unpadded.length()) + unpadded;
//unpadded is "12345"//padded   is "#####12345"

如果你想正确的话:

String unpadded = "12345"; String padded = unpadded + "##########".substring(unpadded.length());
//unpadded is "12345"//padded   is "12345#####"

您可以将“#”字符替换为您想要填充的任何字符,重复您希望字符串的总宽度为多少次。例如,如果要向左侧添加零,使整个字符串长度为15个字符:

String unpadded = "12345"; String padded = "000000000000000".substring(unpadded.length()) + unpadded;
//unpadded is "12345"//padded   is "000000000012345"

与Khachik的答案相比,这种方法的好处是它不使用Integer.parseInt,它可以引发异常(例如,如果要填充的数字太大,比如12147483647)。缺点是,如果您正在填充的内容已经是int,那么您必须将其转换为字符串并返回,这是不可取的。

所以,如果你确定这是一个整数,哈奇克的答案很好。如果没有,那么这是一种可能的策略。



查看完整回答
反对 回复 2019-10-21
  • 3 回答
  • 0 关注
  • 356 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信