String s = “苹果 apple ”中s是多长? System.out.println(s.length) see see 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 8因为java 用 unicode 编码,汉字只算一个字符 苹果 apple 1 2 3456789确实是9。 1苹2苹3' '4'a'5'p'6'p'7'l'8'e'9' ' 10个。String s ="苹果 apple";System.out.println("长度:"+s.getBytes().length); 那,你又少个一个空格哦如果getBytes 应该是11个 String s ="苹果 apple";System.out.println("s.getBytes().length长度:"+s.getBytes().length);System.out.println("s.length长度:"+s.length());运行结果:s.getBytes().length长度:10s.length长度:8 字符串长度,即采用s.length,得到的值跟操作系统有关的,支持中文的系统和不支持中文的系统是不同的,如"苹果"这个字符串,在中文win2000下长度是2,但是在英文Linux下是4但是,如果是算byte的长度,即把s转换成byte数组,在任何环境下都是一样的 byte的长度才是与环境相关的,因为这个和字符编码有关,要是用UTF16连英文都是2个字节。字符串只要输入和编译对了在哪都是一样长度。 呵呵,我不知道你们有没有亲自试验过,Java内部都是Unicode编码的,所以字符串的byte长度肯定是同样的,但是对于String来说,length是跟具体环境的charset相关的,各位同志:不要把Charset(字符集)和Encoding(编码)搞混掉 TreeSet是如何存储的? Java 中,接口中的方法声明成 abstract 和不声明有什么区别? java语言对短信进行解析和发送 JList的BUG吗?今天发现一个奇怪的问题! 测试程序运行的效率用什么工具? 问个java的简单问题 小弟请教................... 可执行jar包的制作? 如何识别输入的是中文还是英文的问题? args代表什么?? 104题中18题(类似) 垃圾回收的問題
因为java 用 unicode 编码,汉字只算一个字符
1 2 3456789确实是9。
2苹
3' '
4'a'
5'p'
6'p'
7'l'
8'e'
9' '
String s ="苹果 apple";
System.out.println("长度:"+s.getBytes().length);
System.out.println("s.getBytes().length长度:"+s.getBytes().length);
System.out.println("s.length长度:"+s.length());
运行结果:
s.getBytes().length长度:10
s.length长度:8
是不同的,如"苹果"这个字符串,在中文win2000下长度是2,但是在英文Linux下是4
但是,如果是算byte的长度,即把s转换成byte数组,在任何环境下都是一样的