我的程序在java中有这个代码:
public static int NumOfStringByte(String str) throws UnsupportedEncodingException{
return str.getBytes("UTF-8").length+2;
}
... 它是否正确? 如何计算字符串的字节数?
答案 0 :(得分:0)
在Java中,调用getBytes('UTF-8')
已经准确地为您提供了UTF-8编码格式的字节,因此您应该只返回该字节数组的长度。添加到该数字的唯一原因是,如果要添加一些额外的字节(例如用于NUL终止或包含byte-order mark);但是,如果你这样做,你应该选择一个更清晰的功能名称。
但请注意,UTF-8编码格式的长度 NOT 与String在内存中的占用空间相同。 Java使用UTF-16编码格式将其字符串存储在内存中。实际用于存储字符串的字节数为str.length() * 2
(基本上,str.length()
为您提供底层缓冲区中char
个对象的数量,每个char
为2个字节)。