public class test{
public static void main(String[] args)
{
String str1 = "eeeee";
String str2 = "斯蒂芬记的";
System.out.println(str1.getBytes().length);
System.out.println(str2.getBytes().length);
}}为啥第一个println 会输出5呢 不是说一个字符占两个字节么? 谢谢回答!
public static void main(String[] args)
{
String str1 = "eeeee";
String str2 = "斯蒂芬记的";
System.out.println(str1.getBytes().length);
System.out.println(str2.getBytes().length);
}}为啥第一个println 会输出5呢 不是说一个字符占两个字节么? 谢谢回答!
java不管什么,都是按字算得
所以eeeee 和 斯蒂芬记的
是一样的
public byte[] getBytes() 使用 **平台默认的字符集**
将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。
------------------------------------
JDOC告诉我们,你们看到的 长度不是unicode码,而是 **平台默认的字符集**所以,我使用linux+UTF8运行你的程序的出来的结果会是 5 15
而你用windows+gb2312的结果则是5 10
String str2 = "斯蒂芬记的";
System.out.println(str1.getBytes().length+" " +str1.length());
System.out.println(str2.getBytes().length+" " +str2.length());
5 5
10 5