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有汉字");
相关文章
- java 判断字符串中 大小写字母 数字和其他字符个数方法
- java 中判断一个字符串中大小写字母的个数及其思路
- Java循环判断数组中是否包含字符串
- java中如何从字符串中删选中文字符(GBK编码和UTF-8编码)
- java中判断一个字符串是否包含另外一个字符串,如果包含,计算出字符串的开始位置
- 在Java中用正则表达式判断一个字符串是否是数字的方法
- 关于判断一个字符串中是否含有字母并且数字的正则表达式
- 在JSP中:怎样使用正则表达式判断一个字符串是否一个或者多个空格?(返回值为true/false)
- 如何判断一个字符串中是否包含一个字符,返回TRUE和FALSE
- 怎样用正则表达式判断一个字符串里面是否含有4个*号