String s = “苹果 apple ”中s是多长?

bhr 2002-06-09 10:50:08
为什么?
...全文
48 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
geyebing 2002-06-12
  • 打赏
  • 举报
回复
呵呵,我不知道你们有没有亲自试验过,Java内部都是Unicode编码的,所以字符串的byte长度肯定是同样的,但是对于String来说,length是跟具体环境的charset相关的,各位同志:不要把Charset(字符集)和Encoding(编码)搞混掉
fightboy 2002-06-09
  • 打赏
  • 举报
回复
那,你又少个一个空格哦

如果getBytes 应该是11个
GJA106 2002-06-09
  • 打赏
  • 举报
回复
10个。
String s ="苹果 apple";
System.out.println("长度:"+s.getBytes().length);
cssin 2002-06-09
  • 打赏
  • 举报
回复
这个运行运行就不知道了啊。
fightboy 2002-06-09
  • 打赏
  • 举报
回复
嗯,是9
咖啡 2002-06-09
  • 打赏
  • 举报
回复
1苹
2苹
3' '
4'a'
5'p'
6'p'
7'l'
8'e'
9' '
咖啡 2002-06-09
  • 打赏
  • 举报
回复
苹果 apple
1 2 3456789

确实是9。
咖啡 2002-06-09
  • 打赏
  • 举报
回复
怎么是9呀?
wes109 2002-06-09
  • 打赏
  • 举报
回复
没必要争论吧!
liushmh 2002-06-09
  • 打赏
  • 举报
回复
8
因为java 用 unicode 编码,汉字只算一个字符
fightboy 2002-06-09
  • 打赏
  • 举报
回复
s.length()

我认为是8
ZeroC 2002-06-09
  • 打赏
  • 举报
回复
s.length
cxj_2000 2002-06-09
  • 打赏
  • 举报
回复
System.out.println(s.length) see see
soldier1002 2002-06-09
  • 打赏
  • 举报
回复
right
jimjxr 2002-06-09
  • 打赏
  • 举报
回复
byte的长度才是与环境相关的,因为这个和字符编码有关,要是用UTF16连英文都是2个字节。字符串只要输入和编译对了在哪都是一样长度。
geyebing 2002-06-09
  • 打赏
  • 举报
回复
字符串长度,即采用s.length,得到的值跟操作系统有关的,支持中文的系统和不支持中文的系统
是不同的,如"苹果"这个字符串,在中文win2000下长度是2,但是在英文Linux下是4
但是,如果是算byte的长度,即把s转换成byte数组,在任何环境下都是一样的
cxj_2000 2002-06-09
  • 打赏
  • 举报
回复
应该是字符串的长度,所以是8
cxj_2000 2002-06-09
  • 打赏
  • 举报
回复
是字符串长度?还是字节串长度? 一个8,一个10
sunspot 2002-06-09
  • 打赏
  • 举报
回复
为什么要用getBytes().length?
eviliw 2002-06-09
  • 打赏
  • 举报
回复
String s ="苹果 apple";
System.out.println("s.getBytes().length长度:"+s.getBytes().length);
System.out.println("s.length长度:"+s.length());
运行结果:
s.getBytes().length长度:10
s.length长度:8

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧