在java中填充数字直到字符串长度为8个字符?
我正在阅读,但找不到完整的片段。我正在寻找一个函数,它接受一个字符串并在左侧填充零 (0),直到整个字符串的长度为 8 位。我找到的所有其他片段只让整数控制要填充的数量,而不是让整数控制填充的数量,直到整个字符串的长度为 x 位。在Java中。
例子
BC238=> 000BC289
4=> 00000004
等谢谢。
i was reading and couldn't find quite the snippet. I am looking for a function that takes in a string and left pads zeros (0) until the entire string is 8 digits long. All the other snippets i find only lets the integer control how much to pad and not how much to pad until the entire string is x digits long. in java.
Example
BC238 => 000BC289
4 => 00000004
etc thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果您从一个已知长度 <= 8 个字符的字符串开始,您可以执行以下操作:
实际上,这也有效:
如果您不确定
s
位于最多 8 个字符长,您需要在使用上述任一方法之前对其进行测试(或使用Math.min(8, s.length())
或准备捕获IndexOutOfBoundsException
代码>)。如果您从整数开始并希望将其转换为带有填充的十六进制,您可以执行以下操作:
If you're starting with a string that you know is <= 8 characters long, you can do something like this:
Actually, this works as well:
If you're not sure that
s
is at most 8 characters long, you need to test it before using either of the above (or useMath.min(8, s.length())
or be prepared to catch anIndexOutOfBoundsException
).If you're starting with an integer and want to convert it to hex with padding, you can do this:
你可以看一下 此处
You can take a look here
怎么样:
或者
我更喜欢使用现有的库方法,例如 Apache Commons
StringUtils
或String.format(...)
中的方法。如果您使用库方法,假设它有一个合理的名称,那么您的代码的意图会更清晰。How about this:
or
I prefer using an existing library method though, such as a method from Apache Commons
StringUtils
, orString.format(...)
. The intent of your code is clearer if you use a library method, assuming it is has a sensible name.懒惰的方法是使用类似的方法: Right("00000000" + yourstring, 8) 以及此处提供的 Right 函数的简单实现: http://geekswithblogs.net/congsuco/archive/2005/07/07/45607.aspx
The lazy way is to use something like: Right("00000000" + yourstring, 8) with simple implementations of the Right function available here: http://geekswithblogs.net/congsuco/archive/2005/07/07/45607.aspx