您的位置:首页 > 编程语言 > Java开发

java判断字符串中是否含有中文字符

2015-05-21 09:38 567 查看
java用的是Unicode 编码char 型变量的范围是0-65535 无符号的值,可以表示 65536个字符,基本上地球上的字符可被全部包括了,实际中,我们希望判断一个字符是不是汉字,或者一个字符串里的字符是否有汉字来满足业务上的需求,String类中有个这样的方法可得到其字符长度length() ,看下面例子,

Java代码

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就把每个字符都按双字节编码,如果都是单字节的字符就按单字节编码

于是按照以上的规律,由以下解决方法,就是判断字符串的长度和字符字节的长度是否相同来判断是否有双字节的字符

Java代码

System.out.println((s1.getBytes().length == s1.length())?"s1无汉字":"s1有汉字");  

System.out.println((s2.getBytes().length == s2.length())?"s2无汉字":"s2有汉字");  

System.out.println((s3.getBytes().length == s3.length())?"s3无汉字":"s3有汉字");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: