Java BitSet - 放置字符/字符串的包装器

标签 java casting bit-manipulation

我正在使用 Java 中的 BitSet 来存储必须序列化到较低抽象级别或从较低抽象级别反序列化的值。这是为了创建一个文件格式的容器。

目前我想将字符串存储到 BitSet 中:

private BitSet string_to_bit(String content_string) {

        BitSet result = new BitSet(this.size);

        char[] content_string_arr = new char[content_string.length()];
        for (char c : content_string_arr) {
            int tmp = (int) c;
            result += Integer.toBinaryString(tmp);
        }
}

+= 在 BitSet 上未定义,因此此时的代码是错误的。 Afaik 我无法重写 Java 6 中的运算符。您将如何优雅地包装该操作?我不想最终一遍又一遍地重复所有这些低级转换,因为它们似乎在重复。有 .toBit 等效项吗?我可以使用 toString() 将 BitSet 转换为 String。为什么没有去抽象?

最好, 马吕斯

最佳答案

据我所知,没有 .toBit() 等效项。您应该编写自己的实现。

这里有 2 个链接可能对您有帮助:Converting Between a BitSet and a Byte Array

Convert bitset to int array and string

关于Java BitSet - 放置字符/字符串的包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4586668/

相关文章:

c++ - 在哪里了解 “bit”?

java - JFormattedTextField 和 getValue 与 getText

带有常量 header 的 Java 旋转日志

c++ - 访问现有基础对象的 protected 成员

java - 需要在 Byte 和 Short 中进行转换

c - 使用按位运算符反转无符号短 vector

java.lang.NoSuchMethodError : org. springframework.web.context.request.ServletRequestAttributes.<初始化>

java - 如何在 TestNG 报告中包含 Log4j2 消息

C++ 模板和以基类和子类作为模板参数的转换

计算数字中的位数