问答详情
源自:2-3 Java 中 String 类的常用方法 Ⅰ

关于字符串长度的问题

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

提问者:qq_周_16 2017-03-09 15:00

个回答

  • xiaoxin3839519
    2017-03-09 15:45:54
    已采纳

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

  • 慕粉1159151825
    2017-03-09 15:51:50

    http://img.mukewang.com/58c1097200015f8f07060089.jpg

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

  • 梦合九千
    2017-03-09 15:46:12

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

    这里有一篇文章

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

  • 梦合九千
    2017-03-09 15:42:57

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