在java中填充数字直到字符串长度为8个字符?

发布于 2024-10-26 07:28:43 字数 232 浏览 1 评论 0原文

我正在阅读,但找不到完整的片段。我正在寻找一个函数,它接受一个字符串并在左侧填充零 (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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

爱给你人给你 2024-11-02 07:28:43

如果您从一个已知长度 <= 8 个字符的字符串开始,您可以执行以下操作:

s = "00000000".substring(0, 8 - s.length()) + s;

实际上,这也有效:

s = "00000000".substring(s.length()) + s;

如果您不确定 s 位于最多 8 个字符长,您需要在使用上述任一方法之前对其进行测试(或使用 Math.min(8, s.length()) 或准备捕获 IndexOutOfBoundsException代码>)。

如果您从整数开始并希望将其转换为带有填充的十六进制,您可以执行以下操作:

String s = String.format("%08x", Integer.valueOf(val));

If you're starting with a string that you know is <= 8 characters long, you can do something like this:

s = "00000000".substring(0, 8 - s.length()) + s;

Actually, this works as well:

s = "00000000".substring(s.length()) + s;

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 use Math.min(8, s.length()) or be prepared to catch an IndexOutOfBoundsException).

If you're starting with an integer and want to convert it to hex with padding, you can do this:

String s = String.format("%08x", Integer.valueOf(val));
夏末 2024-11-02 07:28:43
org.apache.commons.lang.StringUtils.leftPad(String str, int size, char padChar)

你可以看一下 此处

org.apache.commons.lang.StringUtils.leftPad(String str, int size, char padChar)

You can take a look here

吻安 2024-11-02 07:28:43

怎么样:

s = (s.length()) < 8 ? ("00000000".substring(s.length()) + s) : s;

或者

s = "00000000".substring(Math.min(8, s.length())) + s;

我更喜欢使用现有的库方法,例如 Apache Commons StringUtilsString.format(...) 中的方法。如果您使用库方法,假设它有一个合理的名称,那么您的代码的意图会更清晰。

How about this:

s = (s.length()) < 8 ? ("00000000".substring(s.length()) + s) : s;

or

s = "00000000".substring(Math.min(8, s.length())) + s;

I prefer using an existing library method though, such as a method from Apache Commons StringUtils, or String.format(...). The intent of your code is clearer if you use a library method, assuming it is has a sensible name.

绝對不後悔。 2024-11-02 07:28:43

懒惰的方法是使用类似的方法: 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文