如何以大端顺序获取 64 位(不是字节)的字符串大小)?我从来没有在Java中做过这种操作。谢谢你的帮助 : )。
问问题
13043 次
3 回答
4
我想你想要这个:
String source = "0123456789";
byte[] byteArray = source.getBytes("UTF-16BE");
int sizeInBits = byteArray.length * 8;
于 2012-07-06T18:23:58.587 回答
1
诶?字符串只能以字符或字节为单位进行测量,并且只有在您为编码指定特定字符集后才能进行测量。
对于后者,它只是string.getBytes(charset).length
.
如果我们知道您实际上想要做什么,这可能会有所帮助。
于 2012-07-06T18:22:55.477 回答
0
即使像 x86 这样的平台使用 LittleEndian,Java 在内部也始终使用 BigEndian 顺序工作。
在 Java 中,64 位值存储在long
数据类型中。
现在最后一个问题是你想要测量什么。在字符串中,您可以计算字符数,或使用指定编码(例如 UTF-8、UTF-16、ISO-8859-1、...)对其进行编码时字符串占用的字节数。
假设您想计算 String 中的字符数,并且希望将该数字作为 64 位数字,您可以使用以下代码:
String myString = "abcdefgh";
long charCount = myString.length;
如果要写入charCount
文件或网络连接,可以使用 DataOutputStream 获取 BigEndian 表示:
DataOutputStream out = new DataOutputStream(streamToWriteTo);
out.writeLong(charCount);
于 2012-07-06T18:30:43.270 回答