假设我有一些用户输入(如String),如“11010011011”。
现在我想检查特定位置的位是否设置(每个数字应该作为标志)。
注意:我收到用户输入的字符串。
我该怎么做?
答案 0 :(得分:4)
您可以按原样处理字符串 - 例如,您要检查左侧的第一位:
if (input.charAt(0) == '1') { //
或者,如果您想使用BitSet,可以在循环中初始化它:
String input = "11010011011";
BitSet bs = new BitSet(input.length());
int i = 0;
for (char c : input.toCharArray()) {
if (c == '1') bs.set(i);
i++;
}
然后检查第i位是否设置:
boolean isSet = bs.get(i);
答案 1 :(得分:4)
如果要使用按位运算,则首先将字符串转换为整数并使用位掩码进行测试:
int val = Integer.parseInt("11010011011", 2);
System.out.println(val & (1<<0)); //First bit
System.out.println(val & (1<<1)); //Second bit
System.out.println(val & (1<<2)); //Third bit
.....