Java简单布尔[]到字节转换

gri*_*ldi 1 java arrays byte boolean primitive-types

我有一个8个布尔数组,我想简单地转换为一个字节.有一个简单的方法吗?或者我必须使用for循环?

我个人更喜欢一个简单的最多两行解决方案,如果它存在.

感谢帮助.

编辑:可能重复只是一个字节的布尔值,我有一个数组.

另一个编辑:我从一个udp数据包得到一个字节,然后我将第一个位(布尔值)设置为假,然后我需要再次得到一个字节.

Era*_*ran 6

我认为循环更好,但如果你必须有一个班轮:

byte b = (byte)((bool[0]?1<<7:0) + (bool[1]?1<<6:0) + (bool[2]?1<<5:0) + 
                (bool[3]?1<<4:0) + (bool[4]?1<<3:0) + (bool[5]?1<<2:0) + 
                (bool[6]?1<<1:0) + (bool[7]?1:0));
Run Code Online (Sandbox Code Playgroud)

输入:

boolean[] bool = new boolean[] {false,false,true,false,true,false,true,false};
Run Code Online (Sandbox Code Playgroud)

你得到字节42.