String s="hello";
int byte=s.getBytes().length;
System.out.print(byte);byte=s.length()*2;
System.out.print(byte);分别打印为5和10。
请问其中那个是返回s的字节数。
int byte=s.getBytes().length;
System.out.print(byte);byte=s.length()*2;
System.out.print(byte);分别打印为5和10。
请问其中那个是返回s的字节数。
解决方案 »
- 求助,我用jspSmartUpload上传文件部署到服务器上报错:没有getFiles()方法。
- ssh中一次提交action执行了两次是怎么回事
- 在javascript里添加radio标签怎样给标签设置name属性,和value值?
- jsp和SQL server 用JDBC驱动连接问题???
- 我为了折行,把数据中\n替换成<br/>,可现在网页上并没有折行,反而把<br/>显示在网页上了。
- 如何实现页面的自动刷新?
- weblogic6.1 问题(急在线等待)
- 我用jsp刚做的论坛,欢迎大家提意见!来着有分!
- 快来啊,怎么总是不行?帮帮忙把!!!!!!!!!!!
- 秒杀可以使用消息队列么
- 谁给我传个javamail api的包,sun官网下载不了
- 超级烦人的问题 下一个jsp页面不在浏览器中打开,而是提示下载!!
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
但是有一点我不明白:"hello"是有五个字符组成的,每个字符是2个字节,
那么"hello"应该是10个字节呀!
请高手指教。
不知多出来的两字节是什么东东
int byte1=s.getBytes().length;
System.out.println(byte1); int byte2=s.length()*2;
System.out.println(byte2);
打印出来的结果都为:6,6 那是因为一个中文汉字占两个字节,表面上看两种方法都对,但是如果像你自己的那个程序来看就会看出端倪来.在此请注意:标点符号有占用2个字节(全角)的;有占用1个字节(半角)的.故第二种的做法得到的答案就更会不准了.
还是这个s引用所指的String 对象占几个字节还是String中存的字符串的占几个字节。
字符型(char) 2个字节的字符代码,所以我认为每个字符是2个字节。
那么每个字符是2个字节是错误的吗?
可以包含一个16个节字以下的字符.
数字和英文都是一个字节的字符,
中文的是二个字节的字符.
中文编码(GBK,GB18030,GB2312等)是我们经常使用的编码,它是与ASCII兼容的,对应ASCII中的字符只占一个字节,其他汉字字符占用两个字节。
不同的编码会对应不同的字符数,平常我们说“数字和英文都是一个字节的字符”是正确的,但在java中是错误的