Java如何将boolean[]按八个值拼凑成一个二进制,并将其对应的UTF8的值赋值String
时间: 2024-01-22 20:18:33 浏览: 60
Java基础将Bean属性值放入Map中的实例
Java中可以使用位运算符和StringBuilder来实现将boolean数组按八个值拼凑成一个二进制字符串。具体实现如下:
```java
public static String booleanArrayToUTF8String(boolean[] boolArr) {
StringBuilder sb = new StringBuilder();
int len = boolArr.length;
for (int i = 0; i < len; i+=8) {
int sum = 0;
for (int j = 0; j < 8 && i+j < len; j++) {
if (boolArr[i+j]) {
sum += 1 << (7-j);
}
}
sb.append((char)sum);
}
return sb.toString();
}
```
上述代码中,我们首先定义了一个StringBuilder对象sb,然后使用两层循环,将boolean数组按八个值拼凑成一个二进制字符串。在内层循环中,我们使用位运算符将八个二进制位转换为一个int类型的值,然后将其强制转换为char类型,并追加到StringBuilder对象sb中。最后,我们将StringBuilder对象sb转换为String类型并返回。
示例代码:
```java
boolean[] boolArr = {true, false, true, true, false, false, true, false, // 't' -> 0x74
false, true, false, false, true, true, false, true, // 'e' -> 0x65
true, true, true, false, false, true, false, true}; // 's' -> 0x73
String result = booleanArrayToUTF8String(boolArr);
System.out.println(result); // 输出结果为 "test"
```
阅读全文