java中判断字符串是否是中文
内容摘要
Java用的是Unicode 编码char 型变量的范围是0-65535 无符号的值,可以表示 65536个字符,基本上地球上的字符可被全部包括了,实际中,我们希望判断一个字符是不是汉字,或者一个字
文章正文
Java用的是Unicode 编码char 型变量的范围是0-65535 无符号的值,可以表示 65536个字符,基本上地球上的字符可被全部包括了,实际中,我们希望判断一个字符是不是汉字,或者一个字符串里的字符是否有汉字来满足业务上的需求,String类中有个这样的方法可得到其字符长度length() ,看下面例子,
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());
OUTPUT:
我是中国人:5
imchinese:9
im中国人:5
java判断字符串是否为中文:
/** * 判断该字符串是否为中文 * @param string * @return */ public static boolean isChinese(String string){ int n = 0; for(int i = 0; i < string.length(); i++) { n = (int)string.charAt(i); if(!(19968 <= n && n <40869)) { return false; } } return true; }
unicode编码范围:
汉字:[0x4e00,0x9fa5](或十进制[19968,40869])
数字:[0x30,0x39](或十进制[48, 57])
小写字母:[0x61,0x7a](或十进制[97, 122])
大写字母:[0x41,0x5a](或十进制[65, 90])
unicode中文范围
汉字编码范围:u4e00-u9FA5
双字节字符编码范围:u0391-uFFE5
更多java知识请关注java基础教程。
代码注释
[!--zhushi--]