A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 管海鹏 中级黑马   /  2012-10-8 22:33  /  1980 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 管海鹏 于 2012-10-8 22:35 编辑

执行下面代码后:
String strTemp ="abcdefg 某某某";
Int i=System.Text.Encoding.Default.GetBytes(strTemp).Length;
Int j=strTemp.Length;
问:
i=?
j=?
i=(___) ;j=(___ ) 中文两个字节

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

5 个回复

倒序浏览
本帖最后由 刘俊红 于 2012-10-9 00:10 编辑

答案是:i等于14   j等于11

我以前一直理解错了的,我一直以为在.NET中一个英文字符和一个汉字占同样大小字节的。惭愧。


QQ拼音截图未命名.png (43.24 KB, 下载次数: 33)

QQ拼音截图未命名.png

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
很明显i=14,j=11;中文要占两个字节

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
原来中间有个空格,我说我怎么开始算的时候是13和10呢,还以为自己数学有问题,计算了一下,中文一直是两个字符的

QQ截图20121009154726.png (27.52 KB, 下载次数: 31)

QQ截图20121009154726.png

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
哈哈,真的有空格!还是英文输入状态下的空格,不仔细看还看不出来呢。
如果是中文状态的空格,就变成i=15了?运行后发现,不是这样的!还是i=14.原来跟中英文切换没关系,跟全角、半角有关系。
可是为什么不是i=15,j=11呢?

QQ截图20121009171640.png (6.4 KB, 下载次数: 33)

QQ截图20121009171640.png

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
中文要占两个字节,数字、其他字符、空格之类的都是一个字节,所以i=14,j=11

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马