System.out.println(s.length) see see

解决方案 »

  1.   

    8
    因为java 用 unicode 编码,汉字只算一个字符
      

  2.   

    苹果 apple 
    1 2 3456789确实是9。
      

  3.   

    1苹
    2苹
    3' '
    4'a'
    5'p'
    6'p'
    7'l'
    8'e'
    9' '
      

  4.   

    10个。
    String s ="苹果 apple";
    System.out.println("长度:"+s.getBytes().length);
      

  5.   

    那,你又少个一个空格哦如果getBytes 应该是11个
      

  6.   

    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
      

  7.   

    字符串长度,即采用s.length,得到的值跟操作系统有关的,支持中文的系统和不支持中文的系统
    是不同的,如"苹果"这个字符串,在中文win2000下长度是2,但是在英文Linux下是4
    但是,如果是算byte的长度,即把s转换成byte数组,在任何环境下都是一样的
      

  8.   

    byte的长度才是与环境相关的,因为这个和字符编码有关,要是用UTF16连英文都是2个字节。字符串只要输入和编译对了在哪都是一样长度。
      

  9.   

    呵呵,我不知道你们有没有亲自试验过,Java内部都是Unicode编码的,所以字符串的byte长度肯定是同样的,但是对于String来说,length是跟具体环境的charset相关的,各位同志:不要把Charset(字符集)和Encoding(编码)搞混掉