首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

一个字符串的有关问题

2011-12-31 
一个字符串的问题Strings hello intbytes.getBytes().lengthSystem.out.print(byte)bytes.length(

一个字符串的问题
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个节字以下的字符.
数字和英文都是一个字节的字符,
中文的是二个字节的字符.

热点排行