Java汉字处理
来源:互联网 发布:淘宝丝芙兰68折代购 编辑:程序博客网 时间:2024/06/03 14:47
1、字符串长度
String s1 = "我是中国人";
String s2 = "imchinese";
String s3 = "im中国人";
System.out.println(s1+":"+new String(s1).length());
System.out.println(s2+":"+new String(s2).length());
System.out.println(s3+":"+new String(s3).length());
输出结果:
我是中国人:5
imchinese:9
im中国人:5
结论:字符串里如果有双字节的字符java就把每个字符都按双字节编码,如果都是单字节的字符就按单字节编码。
2、提取字符串中的汉字
String str = "af我是kz中h国m人ig";
char ch[] = str.toCharArray();
for (int i = 0; i < ch.length; i++) {
if (ch[i] > 255) {
System.out.print(ch[i]);
}
}
输出结果:
我是中国人
3、打印汉字编码
(1)打印汉字的unicode编码
char ch = '中';
System.out.println(Integer.toHexString(ch));
输出结果:
4e2d
(2)打印汉字的GBK编码
String str = "中";
byte[] bt = str.getBytes("GBK");
System.out.println(Integer.toHexString(bt[0]).substring(6)
+Integer.toHexString(bt[1]).substring(6));
输出结果:
d6d0
说明:java内部使用的是unicode编码,汉字的Unicode编码范围为/u4E00-/u9FA5 或/uF900-/uFA2D,如果不在这个范围内就不是汉字。我们用char定义一个变量,如char ch='中'; 这时,ch是Unicode编码的。GBK编码与unicode编码是不同的两种编码方式,因此它们打印出的值是不一样的。GBK的整体编码范围是为0x8140-0xFEFE,不包括低字节是0x7F的组合。高字节范围是0x81-0xFE,低字节范围是0x40-7E和0x80-0xFE。
4、用两个byte组成一个汉字
byte bb[] = new byte[2];
bb[0] = -42;
bb[1] = -48;
String str = new String(bb);
System.out.println(str);
输出结果:
中
- JAVA处理汉字
- JAVA处理汉字
- Java汉字处理
- java 汉字拼音处理类
- java汉字解析拼音处理
- java字节流处理汉字
- 汉字处理
- 关于java中汉字不能正常显示的处理方案
- Java 汉字转拼音的具体实现及汉字声调处理
- 汉字的处理
- 汉字处理问题
- 汉字 编码格式处理
- .net汉字乱码处理
- 编码中文汉字处理
- python中的汉字处理
- QT处理汉字乱码
- 汉字拼音处理类
- ucGUI汉字处理技巧
- CDialog中在最大化后Button随着改变位置
- 刚申请的博客,感觉不错!!!
- 【小阅读^大脑袋】0226 NO.329
- HDU 1053 && PKU 1521 Entropy (PKU 3253, HDU 2527同解)
- 浅谈C#内存回收与Dispose﹐Close﹐Finalize方法
- Java汉字处理
- 数组与指针的转换,特殊的字符数组
- TCP粘包
- 使对象可以像数组一样进行foreach循环,要求属性必须是私有
- FileHelper 一个极好的数据文本文件处理类库
- 定制ROM中常用到的注册表
- RedHat 设置静态IP
- 信号处理——sigaction
- Android CTS 测试研究