在 Java 6 中,如何在不使用 String.format 的情况下格式化左侧填充的数字?
例如,我需要获取一个未知数,比如说 3,并查找二进制 (2^3) - 1 次,从 0 到 111 (0-7)。显然,我需要的位数取决于 2^n 中的数字“n”。
因此,如果数字是 3,我需要的输出是:
000
001
010
011
100
101
111
现在显然我可以使用 String.format("%03d", NumberInBinary) 操作手动执行此操作,但这将其硬编码为 3 位数字。我需要使用未知位数的等效代码,我该怎么做? (如 String.format("%0nd", yournumber) 中,其中 n 是位数。)
For example, I need to grab an unknown number, let's say 3, and find the binary (2^3) - 1 times, from 0 to 111 (0-7). Obviously, the number of digits I need depends on whatever number 'n' in 2^n.
So, if the number is 3, I would need the output to be:
000
001
010
011
100
101
111
Now obviously I can do this manually with a String.format("%03d", NumberInBinary) operation, but that's hardcoding it for 3 digits. I need to do the equivalent code with an unknown number of digits, how can I do that? (as in String.format("%0nd", yournumber) where n is the number of digits.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果 n = 4,则二进制数 = 101;
带输出
if n = 4, NumberInBinary = 101;
with output
为什么不使用已经内置的 Integer.toBinaryString() 并使用 StringBuilder 手动添加零?
Why not make use of the already built-in Integer.toBinaryString() and just manually add the zeros using a StringBuilder ?
您可以使用递归:
然后
更快地调用
enumerate("", numberOfDigits);
,使用 StringBuffer:然后调用
enumerate(new StringBuffer(), numberOfDigits);
You could use recursion:
and then call
enumerate("", numberOfDigits);
faster, using StringBuffer:
and then call
enumerate(new StringBuffer(), numberOfDigits);