java byte问题? 都说java一个字符占两个字节..

关注以下代码Stringstr="mytest";byte[]bt=str.getBytes();system.out.println(bt.length);结果为怎么为... 关注以下代码 String str="my test"; byte [] bt=str.getBytes(); system.out.println(bt.length); 结果为怎么为7啊, 为什么不是14? 展开
 我来答
Christ_earl
推荐于2016-02-16 · TA获得超过1245个赞
知道小有建树答主
回答量:239
采纳率:0%
帮助的人:0
展开全部
都说了一个字符两个字节,楼主你String转换的是字符吗,byte好像是字节吧
String str="my test";
char ca[] = str.toCharArray();
ca.length;//这才是14
如果说byte:
char c = '中' 这里就有两个字节
char c1 = 'a' 这里也是两个字节,第二个字节是空字节
一个中文字符占两个字节,一个中文标点符号(或全角英文标点)两个字节
一个英文字符占一个字节,一个半角英文标点符号占一个字节
一个半角空格占一个字节,一个全角空格占两个字节
如果你是:
String str = "我的 练习" 空格是半角的 输出是 9
String str = "我的,练习" 标点是半角的 输出是 9
String str = "我的,练习" 标点是全角的 输出是 10
ヤマザキ266e77
2009-11-11 · TA获得超过2052个赞
知道小有建树答主
回答量:721
采纳率:0%
帮助的人:1006万
展开全部
java中的一个char类型字符是两个字节.但String类型并不是按照char类型的方式来保存的,而是灵活的按照英文1字节,中文2字节的形式.
如果你是使用的一个char类型数组,那么就是14字节了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
406705
2009-11-11 · TA获得超过467个赞
知道小有建树答主
回答量:237
采纳率:0%
帮助的人:0
展开全部
楼主注意了

byte [] bt=str.getBytes(); 在bt中存的是str中每个字符对应的ASC码,包含空格,str的长度是7,所以对应的bt的长度是7。

str.toCharArray().length还是7,因为它的长度是此字符串的长度。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yurentian
2009-11-05 · TA获得超过965个赞
知道小有建树答主
回答量:299
采纳率:0%
帮助的人:343万
展开全部
中文和全角符号是占两个字节,英文和半角符号占一个字节。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
freish
2009-11-11 · TA获得超过2878个赞
知道大有可为答主
回答量:3153
采纳率:0%
帮助的人:2739万
展开全部
你这是String,不是char。。。。

没人告诉你String是一定由char组成的吧?!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式