`
zhuanggl
  • 浏览: 13623 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

unicode中汉字区间问题

    博客分类:
  • java
阅读更多

今天接到一个优化性能的任务,把一个过滤非汉字字符的算法性能提高一下,原来方法使用了如下方法:

if (Character.UnicodeBlock.of(c) == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS)

这个方法内部使用了一个二分查找的算法在一个100多个元素的数组中查找对应的UnicodeBlock,对于一个50K的html文件说,性能非常差。

经过查看发现,其实中文字符的Unicode区间只有以下几种:

所以对于我们这个简单的算法只要判断字符是否在0x4E00~0X9FFF之间就可以了,实现后仅仅这个因素性能提升就可以提升7倍(当然还有方法调用的消耗)。

分享到:
评论

相关推荐

    所有中文字Unicode编码区间及常用中文字Unicode编码

    所有中文字Unicode编码区间及常用中文字Unicode编码,在生成随机验证码时可能使用到

    is-chinese:确定字符串是否全为中文(基于unicode范围)

    JS 中文字符串判断(根据 unicode 编码区间判断)Determine if a string is all Chinese(based on unicode range)install$ npm install is-chinesedescriptionChinese range is based on:examplevar isChinese = ...

    Bopomofo.js拼音转换库 v1.0.1

    H5可以使用的汉字转拼音库1、实现汉字转拼音2、实现汉语单词转拼音3、实现汉语句子转拼音,在一定程度解决多音字问题原理:1、获取当前汉字的unicode值,如果在[19968,40869]中文区间,则执行第2步,否则直接输出...

    Java 完美判断中文字符的方法

    Java判断一个字符串是否有中文一般情况是利用Unicode编码正则来做判断,但是其实这个区间来判断中文不是非常精确,以下是比较完善的判断方法

    Bopomofo.js拼音转换库-其他

    1、获取当前汉字的unicode值,如果在[19968,40869]中文区间,则执行第2步,否则直接输出(可能为符号,数字,英文字母或其他语系) 2、检查当前汉字是否在多音字库中,如果存在返回该汉字发音的拼音和汉字序列数组,...

    二进制,十进制,十六进制,bit转换工具【Ucode++ v1.8.0】

    可以任意转换64bit数据到2进制、10进制、16进制,2进制可以直接查看任意bit,取0~63之间的任意区间值,并且支持取位、移位大小端转换、加、减、乘、除、取余、与、或、非等计算,支持GB2312Z中文编码、Unicode、ANSI...

    SQL SERVER 2000开发与管理应用实例

    本书不但融合了作者在使用SQL Server 2000过程中遇到的各种常见问题和应用案例,还总结了作者几年来在CSDN 社区SQL Server版所解决的大量问题,面向实际项目需求,涉及不同类型的应用,能够多角度地引导读者学习相关...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...

    Excel公式与函数大辞典.宋翔(带书签高清文字版).pdf

    本书从函数功能、函数格式、参数说明、注意事项、Excel 版本提醒、案例应用、交叉参考7 个方面,全面、细致地介绍了Excel 2016/2013/2010/2007/2003 中公式和函数的使用方法、实际应用和操作技巧。最后3 章还将公式...

    Excel函数活用范例大辞典(全新版).何先军.2015-2(带书签高清文字版).pdf

    156 计算混合字符串之中汉字的个数 314 157 将单词的首字母转换为大写 315 158 将所有单词转换为小写形式 317 159 将英文句子的首字母转换为大写其余小写的形式 318 160 将所有单词转换为大写 320 161 ...

    freemarker总结

    使用import指令导入库到模板中,Freemarker会为导入的库创建新的名字空间,并可以通过import指令中指定的散列变量访问库中的变量: ${my.mail} ${mail} 输出结果: <p>Copyright (C) 1999-2002 ...

Global site tag (gtag.js) - Google Analytics