java语言中的汉字问题 String str="你好";System.out.println(str.length());一个个汉字占两个字符,可为什么上面输出的结果是二,而不是所预测的4? 请指点! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 java采用Unicode编码,所以Java简单类型char是双字节的 length 是计算字符的个数而一个汉字占用的是两个字节(也有可能是3个或者4个字节,依编码而定)按照你的意思应该这样写byte[] b=str.getBytes("ISO-8859-1");System.out.println(b.length); 为啥会是 4 呢,在原来的 DOS 程序下,结果是 4,DOS 中的汉字处理方式与 Java 中不一样。 汉字这个问题在java里面情况很复杂。 汉字就是头疼首先.length()得到的是字符数而不是字节数,java里用的是Unicode编码一个汉字字符虽然是占两个字节,但是它是一个字符 楼主,给你一段代码看看吧。public class Temp { public static void main(String[] args) { String str = "你好"; System.out.println(str.length()); System.out.println(str.getBytes().length); str = "你好a"; System.out.println(str.length()); System.out.println(str.getBytes().length); }}结果为:2435Java里的String的length()返回的是String里字符的个数,而不是字节个数,汉字是两个字节的。String.getBytes().length才是真正的字节数。 jsp获取js 值 java 字符集问题 showInputDialog上初始一个默认值 初用ant小问题 如何用JAVA获取两台机子之间的带宽呢?请教了!谢谢各位! 学生跪求! 请教高手 在安装JAVA2 SDK后,如何解决path路径问题? 我的JAVAC怎么会没用了?!!! java怎样在没有SQL server软件的电脑中连接数据库 查询修改.txt文本内容 求助,list中含有null
按照你的意思应该这样写byte[] b=str.getBytes("ISO-8859-1");System.out.println(b.length);
首先.length()得到的是字符数而不是字节数,java里用的是Unicode编码一个汉字字符虽然是占两个字节,但是它是一个字符
public class Temp {
public static void main(String[] args) {
String str = "你好";
System.out.println(str.length());
System.out.println(str.getBytes().length);
str = "你好a";
System.out.println(str.length());
System.out.println(str.getBytes().length);
}
}
结果为:
2
4
3
5Java里的String的length()返回的是String里字符的个数,而不是字节个数,汉字是两个字节的。
String.getBytes().length才是真正的字节数。