如何在BITS(而不是字节)中获取字符串的二进制大小(例如String s =“Ababa”)。
答案 0 :(得分:10)
用什么编码?字符串的特定二进制表示的位的数量只是字节数* 8:
byte[] bytes = text.getBytes("UTF-8"); // Or whatever encoding you want
int bits = bytes.length * 8;
我认为我从未见过允许分数字节的编码。
请注意,如果您对UTF-16感兴趣,则可以使用text.length() * 16
,因为每个char
都是UTF-16代码单元。
答案 1 :(得分:5)
得到字节,多了8 ...
"xxx".getBytes().length * 8;
编辑:与Jon Skeet的答案合并,指定编码也很重要,否则这将使用系统的默认编码返回大小,这不一定是您想要知道的。要使用特定编码了解大小,请使用:
"xxx".getBytes(encoding).length * 8;
编码为“UTF-8”,“ASCII”或您想要使用的任何内容。