Java&MySQL:将读取数据存储在比特数组的365个位置。怎样
我目前正在使用Java和MySQL,发现了一个我不知道如何解决的问题
我有一个类,它存储365个位置的字符串,表示二进制字符串“010111010010100…”,我希望能够从数据库中存储和读取该字段。 读取后,我将使用另一个位数组执行AND逻辑操作
我读过关于允许逻辑运算符(AND,OR,XOR,…)的位集类在他们之间。我试过了,但我不喜欢我得到的解决方案。我还可以尝试将字符串转换为字节数组,然后从数据库中存储和读取它,以便以后执行逻辑和操作,但不确定是否需要始终创建位集,以及它的性能如何
我不知道做我想做的事哪种方式最有效:
- 转换另一个元素中的二进制字符串李>
- 将该元素存储在数据库中(对于位集,我尝试将数据库字段定义为BLOB,但在将位集转换为BLOB和将BLOB读取为位集时遇到了很多问题)李>
- 从数据库中读取元素(此时直接使用该元素而不进行任何转换或转换将非常好)李>
- 使用另一个位数组执行逻辑AND并获得结果李>
我尝试了很多选择,但都不奏效
有人能帮我解决这个问题吗?如何从性能的角度更好地解决这个问题
谢谢
# 1 楼答案
将位存储在字符串中有点奇怪,我曾经长时间存储一个数字,并对其进行逐位操作。它对你不起作用,因为你使用了更多的比特。如果它仍然是字符串,也许您可以编写一个简短的函数,在字符串的每个字节上使用AND运算符,如下所示:
检查您的字符串,同时检查它是否等于二进制字符串(您想要的字符串和它),如果它们相等,则为concat 1,如果不相等,则为concat 0