获取特定String JAVA的二进制大小

时间:2012-07-07 14:06:48

标签: java string

如何在BITS(而不是字节)中获取字符串的二进制大小(例如String s =“Ababa”)。

2 个答案:

答案 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”或您想要使用的任何内容。