我有一个很奇怪的情况,
我正在为另一个程序编写一个过滤器引擎,那个程序有所谓的“保存区域”。这些保存区域中的每一个都编号为 0 到 32(为什么有 33 个,我不知道)。它们通过二进制字符串打开或关闭,
1 = save area 0 on
10 = save area 1 on, save area 0 off
100 = save area 2 on, save areas 1 and 0 off.
等等。
我有另一个程序传递它需要的保存区域,但它使用十进制表示和下划线 - 例如保存区域 1、2 和 3 的 1_2_3。
我需要将该示例转换为 1110。
我想到的是我可以构建一个字符串,如下所示: 我将它分解(使用拆分)到 savePart[i]。然后我遍历 savePart[i] 并构建字符串:
String saveString = padRight("0b1",Integer.parseInt(savePart[i]));
例如,在保存区域 6 的情况下,这将给我一个字符串,该字符串显示为“0b1000000”。
有没有一种方法可以像读取二进制数一样读取该字符串。因为如果我说:
long saveBinary = 0b1000000L
那完全可行。
或者,是否有更聪明的方法来做到这一点?
最佳答案
long saveBinary = Long.parseLong(saveString, 2);
请注意,您必须去掉 0b
前缀。
关于java - 字符串转二进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32278449/