
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?
展开
5个回答
展开全部
都说了一个字符两个字节,楼主你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
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
展开全部
java中的一个char类型字符是两个字节.但String类型并不是按照char类型的方式来保存的,而是灵活的按照英文1字节,中文2字节的形式.
如果你是使用的一个char类型数组,那么就是14字节了
如果你是使用的一个char类型数组,那么就是14字节了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主注意了
byte [] bt=str.getBytes(); 在bt中存的是str中每个字符对应的ASC码,包含空格,str的长度是7,所以对应的bt的长度是7。
str.toCharArray().length还是7,因为它的长度是此字符串的长度。
byte [] bt=str.getBytes(); 在bt中存的是str中每个字符对应的ASC码,包含空格,str的长度是7,所以对应的bt的长度是7。
str.toCharArray().length还是7,因为它的长度是此字符串的长度。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
中文和全角符号是占两个字节,英文和半角符号占一个字节。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这是String,不是char。。。。
没人告诉你String是一定由char组成的吧?!
没人告诉你String是一定由char组成的吧?!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询