String str =“学习 JAVA 编程 ”这个字符串的长度为什么是10啊, 而且‘编’这个字为什么在第8个字符位置上 求问
这里是按Unicode计算字符串长度,而不是以字节单位获得字符串的长度,所以汉字的长度是1,不是2,加上两个空格长度就是10,另外字符串中字符的索引是从0开始的,所以str.indexOf(编)=8,表示的是在第9个字符位置上。
你是不是java前有空格。。。
java中string的length()取出来的是字符长度而不是字节长度
中文一个字符是占两个字节的一个英文字母占一个字节
所以如果 有字符串tmpString = "中国acb"
则tempString.length()的结果是5
这里有一篇文章
http://bbs.csdn.net/topics/60386039
根据这个输出,我认为编译器对汉字和空格,英文都看做是一个字符