一个字符串的问题
String   s= "hello "; 
 int   byte=s.getBytes().length; 
 System.out.print(byte);     
 byte=s.length()*2; 
 System.out.print(byte);   
 分别打印为5和10。 
 请问其中那个是返回s的字节数。
------解决方案--------------------你数数hello有几个字母...
------解决方案--------------------=s.length()
------解决方案--------------------String s= "hello "; 
 int byte=s.getBytes().length; 
 System.out.print(byte); 
 得到的是它的字节数:5 
 byte[] getBytes()使用平台默认的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。 
 String s= "你好 "; 
 int byte=s.getBytes().length; 
 System.out.print(byte); 
 得到的是它的字节数:4 
------解决方案--------------------s.getBytes().length
------解决方案--------------------一个字母只占一个字节
------解决方案--------------------每个字符是2个字节?MS ASCII字符是一个字节吧
------解决方案--------------------s.getBytes().length
------解决方案--------------------因为s.getBytes()返回的不是java的unicode编码的字节数组,而是系统的默认编码,如GB2312对应的编码。   
  "hello ".getBytes( "Unicode ").length=12 
 不知多出来的两字节是什么东东 
------解决方案--------------------s.getBytes().length;才是正确求字节数的表达式,如果用下面的方式求出的字节数有可能有误.如:String s= "中国家 "; 
 		int byte1=s.getBytes().length; 
 		System.out.println(byte1);     
 		int byte2=s.length()*2; 
 		System.out.println(byte2); 
 打印出来的结果都为:6,6   那是因为一个中文汉字占两个字节,表面上看两种方法都对,但是如果像你自己的那个程序来看就会看出端倪来.在此请注意:标点符号有占用2个字节(全角)的;有占用1个字节(半角)的.故第二种的做法得到的答案就更会不准了.
------解决方案--------------------第一个是,鉴定结果水帖成分比较高!
------解决方案--------------------楼主你问的问题不对啊。   
 你是问s这个引用的占几个字节。 
 还是这个s引用所指的String 对象占几个字节   
 还是String中存的字符串的占几个字节。
------解决方案--------------------char是16位的. 
 可以包含一个16个节字以下的字符. 
 数字和英文都是一个字节的字符, 
 中文的是二个字节的字符.