java中“学java”字符串在内存中占的字节
publicclassTest{publicstaticvoidmain(String[]args){Stringstr="学java";intn=str.getByte...
public class Test{
public static void main(String[] args){
String str = "学java";
int n = str.getBytes().length;
System.out.println(n);
}
}
测试结果输出:7
求解
Java内部是使用unicode编码的,一个字符占用两个字节,这样算下来,应该输出10啊 展开
public static void main(String[] args){
String str = "学java";
int n = str.getBytes().length;
System.out.println(n);
}
}
测试结果输出:7
求解
Java内部是使用unicode编码的,一个字符占用两个字节,这样算下来,应该输出10啊 展开
7个回答
2014-09-29 · 知道合伙人数码行家
关注
展开全部
您好,提问者:
Java默认是用gbk编码,而且汉字是占两个字节,都是负数。
Java中的UTF-8汉字是三个字节,都是负数,其它是一个字节。
所以输出2+4=6,完全正确。
由于你修改了这个文件的编码,所以输出3+4=7的
str.getBytes("unicode").length; //12
str.getBytes("gbk").length; //6
str.getBytes("utf-8").length; //7
2014-09-29 · 知道合伙人软件行家
关注
展开全部
Java内部是使用unicode编码的
unicode是变长的,英文占一个字节,汉字占2-4个字节
谢谢采纳
unicode是变长的,英文占一个字节,汉字占2-4个字节
谢谢采纳
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java的unicode编码不是固定的,对于英文是固定的占一个字节,但是对于汉字不是固定的,可以去这里看一下http://blog.csdn.net/lubiaopan/article/details/4714909
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把“学”和“java”分开输出看一下就明白了,汉字“学”占了3个字符,每个英文占1个字符。
另外,汉字通常占2-3个字符,和你运行程序的环境有关系。
另外,汉字通常占2-3个字符,和你运行程序的环境有关系。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输出的结果为 7 应该是 编码是 utf-8 unicode的编码输出的是12并不是10
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询