由于你有一个字符串,仅包含0和1,你只需使用String#charAt()和
BitSet#set()就可以在不转换为Long的情况下完成它.例如,像这样:
private static BitSet fromString(String binary) {
BitSet bitset = new BitSet(binary.length());
for (int i = 0; i < binary.length(); i++) {
if (binary.charAt(i) == '1') {
bitset.set(i);
}
}
return bitset;
}
或者使用r-l方向,因为它通常使用:
private static BitSet fromString(String binary) {
BitSet bitset = new BitSet(binary.length());
int len = binary.length();
for (int i = len-1; i >= 0; i--) {
if (binary.charAt(i) == '1') {
bitset.set(len-i-1);
}
}
return bitset;
}