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就把每个字符都按双字节编码,如果都是单字节的字符就按单字节编码
于是按照以上的规律,结合一位QQ昵称 綠茶㊣珠海 兄的提示由以下解决方法,就是判断字符串的长度和字符字节的长度是否相同来判断是否有双字节的字符
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有汉字");
OUTPUT:
s1有汉字
s2无汉字
s3有汉字 //
且慢,这样诚然可以判断出来一个串中是否有双字节编码的字符,但是要精确判断是否有汉字就有些麻烦了,我们知道还有许多其他国家的字符在Unicode中是双字节的.
于是,需要进一步确定汉字的编码范围怎么确定呢,我用了一个本办法那就是现在记事本输出0-65535之间的字符,通过观察发现第一个汉字是'一'最后一个是'龥'(现在我也不认识);这下好了判断汉字就容易多了比如我们可以通过比较字符的编码范围,最后给大家一些我试验的结果汉字基本集中在[19968,40869]之间,共有20901个汉字(是不是少了点,算算你能认识多少)

判断String中是否有汉字相关推荐

  1. java 包含汉字,【转载】Java判断字符串中是不是包含汉字

    [转载]Java判断字符串中是否包含汉字 import java.util.regex.Matcher; import java.util.regex.Pattern; public class If ...

  2. java 包含汉字,java判断字符串中是否包含汉字

    java判断字符串中是否包含汉字 package com.zuidaima.util; /** [email protected] www.zuidaima.com **/ public class ...

  3. 判断java String中是否有汉字的方法

    作者:Cavien     文章来源:[url]http://bbs.cavien.com/   [/url]上传日期:2006-09-25   java用的是Unicode 编码char 型变量的范 ...

  4. C#正则怎么判断字符串中是否有汉字

    Regex r = new Regex(".*[\\u4e00-\\u9faf].*"); r.IsMatch(username) 转载于:https://www.cnblogs. ...

  5. python 判断list 中重复元素最后1次出现的位置

    方法 1 把list 转string 之后使用rfind python 判断list 中重复元素最后1次出现的位置 ,list 中没有直接方法判断 不过string 有find 和 rfind的 ,f ...

  6. java用正则表达式判断字符串中是否仅包含英文字母、数字和汉字

    /*判断字符串中是否仅包含字母数字和汉字       *各种字符的unicode编码的范围:      * 汉字:[0x4e00,0x9fa5](或十进制[19968,40869])      * 数 ...

  7. java用正则表达式判断字符串中是否仅包含英文字母、数字和汉字_灵思致远Leansmall的博客-CSDN博客_java判断字符串只包含数字字母

    import java.util.regex.Matcher; import java.util.regex.Pattern;public class StrValidate {// 纯数字priva ...

  8. 判断字符串中是否仅包含英文字母、数字和汉字

    /*** 判断字符串中是否仅包含英文字母.数字和汉字* @param str* @return*/public static boolean isLetterDigitOrChinese(String ...

  9. JAVA判断字符串中是否包含中文汉字

    汉字的Unicode范围扩展了好多次了,网上的各种判断正则都是之前的,漏了很多 汉字 下面是最新的最全的判断正则 /*** 判断字符串中是否包含中文汉字** @param content* @retu ...

最新文章

  1. android2.2编译,Android NDK编译Box2D_V2.2
  2. ES6中的promise、async、await用法详解
  3. C语言函数集(十五)
  4. Codeforces Round #561 (Div. 2)ABC
  5. MVC5中利用NOPI导出EXCLE
  6. php curl for win7_win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
  7. 低代码开发初体验一分钟——Jeecg-Boot 在线报表开发
  8. html引vue怎么实现国际化,Vue项目中Vue-i18n和element-ui国际化开发实现过程_唇印_前端开发者...
  9. FreeSWITCH的NAT穿越
  10. 【Hadoop Summit Tokyo 2016】中型组织的数据基础设施架构:收集、存储和分析的技巧...
  11. call方法和apply方法
  12. nagios原装配置文件
  13. Acrobat专业版破解补丁AMTEmu+Win+v0.9.2
  14. pip install 安装requirements.txt经常报错解决方法
  15. VSS无法访问 (0x80072EFD) 转载
  16. 2020全国高校计算机能力挑战赛(word模拟题)
  17. 对射式光电传感器测速使用CD10406消抖动解决办法
  18. Libgdx游戏编程之卡牌游戏UI布局
  19. FineBI中tomcat服务器部署
  20. warring:integer conversion resulted in a change of sign

热门文章

  1. x201换风扇_笔记本怎么换风扇 ThinkPad X201i换风扇图文教程
  2. python制作圣诞贺卡_简单好看的圣诞贺卡手工制作方法 圣诞节卡片怎么做
  3. squirrel sql mysql_SQuirreL SQL Client的安装与配置(原创)
  4. 实现echart柱形图上方自定义图片显示
  5. 计算机鼠标透明度,给电脑添加透明护眼蒙版(鼠标穿透)
  6. 试一下JAVAMAIL
  7. 联想g470笔记本开vt_ThinkPad笔记本电脑怎么开启vt虚拟化技术
  8. 怎样在新窗口中打开 jsp页面
  9. OSPF的七种状态机
  10. 标签打印软件如何连接SQL Server数据库打印产品标签