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呢 不是说一个字符占两个字节么? 谢谢回答!
------解决方案--------------------
一个中文字符占两个字节,一个英文字符占一个字节~~~明白?
------解决方案--------------------
楼上是正确的
java不管什么,都是按字算得
所以eeeee 和 斯蒂芬记的
是一样的
------解决方案--------------------
mark
------解决方案--------------------
这个是计算字符串长度。。都是5个当然都显示5
------解决方案--------------------
对 , java 是UTF的 所以自然都是5个
------解决方案--------------------
5
10
怎么都会是5呢??????
------解决方案--------------------
学习
------解决方案--------------------
getBytes
public byte[] getBytes()
使用 **平台默认的字符集**
将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。
------------------------------------
JDOC告诉我们,你们看到的 长度不是unicode码,而是 **平台默认的字符集**
所以,我使用linux+UTF8运行你的程序的出来的结果会是 5 15
而你用windows+gb2312的结果则是5 10
------解决方案--------------------
String str1 = "eeeee ";
String str2 = "斯蒂芬记的 ";
System.out.println(str1.getBytes().length+ " " +str1.length());
System.out.println(str2.getBytes().length+ " " +str2.length());
5 5
10 5