3

假设我有一些用户输入(作为字符串),例如“11010011011”。

现在我想检查是否在特定位置设置了一点点(每个数字都应该作为一个标志)。

注意:我将用户的输入作为字符串接收。

我怎样才能做到这一点?

4

2 回答 2

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);
于 2012-11-01T15:02:27.623 回答
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
.....
于 2012-11-01T15:06:17.310 回答