假设我有一些用户输入(作为字符串),例如“11010011011”。
现在我想检查是否在特定位置设置了一点点(每个数字都应该作为一个标志)。
注意:我将用户的输入作为字符串接收。
我怎样才能做到这一点?
假设我有一些用户输入(作为字符串),例如“11010011011”。
现在我想检查是否在特定位置设置了一点点(每个数字都应该作为一个标志)。
注意:我将用户的输入作为字符串接收。
我怎样才能做到这一点?
您可以按原样使用字符串 - 假设您要检查左侧的第一位:
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);
如果要使用按位运算,则首先将字符串转换为整数并使用位掩码进行测试:
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
.....