小编典典

在Java中用前导零填充等于零(“ 0”)的二进制字符串

java

Integer.toBinaryString(data)

给我数组数据的二进制String表示形式。

但是,我想要一种添加前导零的简单方法,因为等于零的字节数组为我提供了“ 0”字符串。

我想要这样的一线客:

String dataStr = Integer.toBinaryString(data).equals("0") ? String.format(format, Integer.toBinaryString(data)) : Integer.toBinaryString(data);

String.format()正确的方法吗?如果是,我format应该使用什么字符串?提前致谢!

编辑:data数组是动态长度,因此前导零的数目也应如此。


阅读 541

收藏
2020-11-16

共1个答案

小编典典

对于使用5个前导零填充,这将起作用:

String.format("%5s", Integer.toBinaryString(data)).replace(' ', '0');

您没有指定字符串的预期长度,在上面我使用5的示例代码中,将其替换为适当的值。

编辑

我只是注意到这些评论。当然,您可以动态构建模式,但是在某些时候,您 必须 知道最大预期大小,具体取决于您的问题,您将知道如何确定该值:

String formatPattern = "%" + maximumExpectedSize + "s";
2020-11-16