绝对基础的问题 可偶不会。。
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