3

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

4

2 回答 2

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 代码单元。

于 2012-07-07T14:07:37.900 回答
5

获取字节,乘以 8...

"xxx".getBytes().length * 8;

编辑:与 Jon Skeet 的答案合并,指定编码也很重要,否则这将使用系统的默认编码返回大小,这不一定是您想知道的。要知道使用某种编码的大小,请使用:

 "xxx".getBytes(encoding).length * 8;

编码是“UTF-8”、“ASCII”或任何你想使用的。

于 2012-07-07T14:08:25.183 回答