为了账号安全,请及时绑定邮箱和手机立即绑定

关于字符串长度的问题

String str =“学习 JAVA 编程 ”这个字符串的长度为什么是10啊, 而且‘编’这个字为什么在第8个字符位置上  求问

正在回答

4 回答

这里是按Unicode计算字符串长度,而不是以字节单位获得字符串的长度,所以汉字的长度是1,不是2,加上两个空格长度就是10,另外字符串中字符的索引是从0开始的,所以str.indexOf(编)=8,表示的是在第9个字符位置上。

0 回复 有任何疑惑可以回复我~
#1

qq_周_16 提问者

非常感谢!
2017-03-10 回复 有任何疑惑可以回复我~
#2

xiaoxin3839519 回复 qq_周_16 提问者

共勉!
2017-03-10 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//58c1097200015f8f07060089.jpg

你是不是java前有空格。。。

0 回复 有任何疑惑可以回复我~

java中string的length()取出来的是字符长度而不是字节长度
中文一个字符是占两个字节的一个英文字母占一个字节
所以如果 有字符串tmpString = "中国acb"
则tempString.length()的结果是5

这里有一篇文章

http://bbs.csdn.net/topics/60386039

0 回复 有任何疑惑可以回复我~

根据这个输出,我认为编译器对汉字和空格,英文都看做是一个字符

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于字符串长度的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信