fromString 方法中 BitSet valueOf 的目的是什么
what is the purpose of BitSet valueOf in fromString method
如果能解释一下这条线的具体作用,我将不胜感激。
BitSet.valueOf(new long[] { Long.parseLong(s, 2) });
虽然 FauxFaus 发布的这个代码示例确实帮助我理解了 BitSet 的用法,但我没有找到上面一行的目的或原因。
这是完整的例子:
package com.tutorialspoint;
import java.util.*;
import java.util.BitSet;
public class TimeZoneDemo {
public static void main(String[] args) {
BitSet bits1 = fromString("1000001");
BitSet bits2 = fromString("1111111");
System.out.println(toString(bits1)); // prints 1000001
System.out.println(toString(bits2)); // prints 1111111
bits2.and(bits1);
System.out.println(toString(bits2)); // prints 1000001
}
private static BitSet fromString(final String s) {
System.out.println(BitSet.valueOf(new long[] { Long.parseLong(s, 2) }));
return BitSet.valueOf(new long[] { Long.parseLong(s, 2) });
}
private static String toString(BitSet bs) {
return Long.toString(bs.toLongArray()[0], 2);
}
}
请注意,我无法对询问 OP 的原始答案发表评论。
Long.parseLong(s, 2)
将 String
s
解析为二进制 String
。结果 long
被放入 long
数组并传递给 BitSet.valueOf
以生成 BitSet
其位代表该 long
值的位。
BitSet.valueOf
使用 long
数组而不是单个 long
的原因是允许创建超过 64 位的 BitSet
。
如果能解释一下这条线的具体作用,我将不胜感激。
BitSet.valueOf(new long[] { Long.parseLong(s, 2) });
虽然 FauxFaus 发布的这个代码示例确实帮助我理解了 BitSet 的用法,但我没有找到上面一行的目的或原因。 这是完整的例子:
package com.tutorialspoint;
import java.util.*;
import java.util.BitSet;
public class TimeZoneDemo {
public static void main(String[] args) {
BitSet bits1 = fromString("1000001");
BitSet bits2 = fromString("1111111");
System.out.println(toString(bits1)); // prints 1000001
System.out.println(toString(bits2)); // prints 1111111
bits2.and(bits1);
System.out.println(toString(bits2)); // prints 1000001
}
private static BitSet fromString(final String s) {
System.out.println(BitSet.valueOf(new long[] { Long.parseLong(s, 2) }));
return BitSet.valueOf(new long[] { Long.parseLong(s, 2) });
}
private static String toString(BitSet bs) {
return Long.toString(bs.toLongArray()[0], 2);
}
}
请注意,我无法对询问 OP 的原始答案发表评论。
Long.parseLong(s, 2)
将 String
s
解析为二进制 String
。结果 long
被放入 long
数组并传递给 BitSet.valueOf
以生成 BitSet
其位代表该 long
值的位。
BitSet.valueOf
使用 long
数组而不是单个 long
的原因是允许创建超过 64 位的 BitSet
。