当前位置: 首页 > news >正文

建设书法网站的主题是前端电商网站设计论文

建设书法网站的主题是,前端电商网站设计论文,学校网站asp,杭州网站建设小程序Java Character 实现Unicode字符集介绍 CJK中文字符和中文标点判断主要内容#xff1a;1. Java Character类介绍#xff1b;2. Unicode 简介及 UnicodeBlock 与 UnicodeScript区别和联系3. 如何判断汉字及中文标点符号做中文信息处理#xff0c;经常会遇到如何判断一个字是…Java Character 实现Unicode字符集介绍  CJK中文字符和中文标点判断主要内容1. Java Character类介绍2. Unicode 简介及 UnicodeBlock 与 UnicodeScript区别和联系3. 如何判断汉字及中文标点符号做中文信息处理经常会遇到如何判断一个字是否是中文或者是否是中文的标点符号等。在Java中主要使用 Character类处理字符有关功能而JDK 1.7中Character是按照Unicode 6.0版本实现的所以这个要先学习下常用的 Unicode编码。Character 类中有3个静态内部类Modifier and Typehttp://http://www.cnblogs.com/zztt/admin/EditPosts.aspx?opt1www.cnblogs.com/zztt/admin/EditPosts.aspx?opt1Class and Descriptionstatic classInstances of this class represent particular subsets of the Unicode character set.static classA family of character subsets representing the character blocks in the Unicode specification.static classA family of character subsets representing the character scripts defined in the Unicode Standard Annex #24: Script Names.其中的UnicodeBlock 和 UnicodeScript类可以帮助我们判断字符类型UnicodeBlock是Unicode标准协会组织unicode码的一个基本单位实际上一个 UnicodeBlock代表一片连续的Unicode号码段UnicodeBlock之间不重叠。例如通常我们利用Unicode编码是否在 0x4E00–0x9FCC 来判断某字符是否为汉字就是因为有个UnicodeBlock 专门划分为存储汉字 (准确的说是 CJK统一汉字)这个UnicodeBlock叫做 CJK Unified Ideographs总共定义了 74,617 个汉字。当然还有其他很多UnicodeBlock例如对于汉字还有4个扩展 UnicodeBlockCJK Unified Ideographs Extension A, B, C, D 分别都扩展了一些我们平时见都没见过的汉字(如果不是专门的古籍数字化Unicode字符集中的汉字普通交流够了)Unicode中一种Script通常就是一个字符或者其他书写符号的集合代表着一种或多种writing systems (这里暂且翻译为文书类型文书类型细分可以分成不同语言)。有些Script仅支持一种文字类型有些可以支持多种例如 Latin Script 支持 supports English, French, German, Italian, Vietnamese, Latin 等等具体可见wikipediahttp://en.wikipedia.org/wiki/Scripts_in_UnicodeUnicodeBlock 与 UnicodeScript 关系所以UnicodeScript 是从语言书写规则层次对Unicode字符的分类这是用使用角度划分而UnicodeBlock是从硬的编码角度划分。1. UnicodeBlock是简单的数值范围 (其中可能有些Block中会有一些尚未分配字符的“空号”)。2. 在一个UnicodeScript中的字符可能分散在多个UnicodeBlock中3. 一个UnicodeBlock中的字符可能会被划进多个UnicodeScript中。另外需要注意的是UnicodeScript实现是在Java 7中新引入的。具体在编写程序中可以游2种办法一是使用 UnicodeBlock请见代码//使用UnicodeBlock方法判断public boolean isChineseByBlock(charc) {Character.UnicodeBlock ubCharacter.UnicodeBlock.of(c);if (ub Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS|| ub Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A|| ub Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B|| ub Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C|| ub Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D|| ub Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS|| ub Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT) {return true;}else{return false;}}或者如果使用JDK1.7那么UnicodeScript方法会更方便因为UnicodeScript.HAN 包括了上面所列的5个UnicodeBlock//使用UnicodeScript方法判断public boolean isChineseByScript(charc) {Character.UnicodeScript scCharacter.UnicodeScript.of(c);if (sc Character.UnicodeScript.HAN) {return true;}return false;}类似的扩展开去还可以判别中文标点符号。因为中文的标点符号主要存在于以下5个UnicodeBlock中U2000-General Punctuation (百分号千分号单引号双引号等)U3000-CJK Symbols and Punctuation ( 顿号句号书名号〸〹〺 等PS: 后面三个字符你知道什么意思吗 : )    )UFF00-Halfwidth and Fullwidth Forms ( 大于小于等于括号感叹号加减冒号分号等等)UFE30-CJK Compatibility Forms  (主要是给竖写方式使用的括号以及间断线﹉波浪线﹌等)UFE10-Vertical Forms (主要是一些竖着写的标点符号    等等)//根据UnicodeBlock方法判断中文标点符号public boolean isChinesePunctuation(charc) {Character.UnicodeBlock ubCharacter.UnicodeBlock.of(c);if (ub Character.UnicodeBlock.GENERAL_PUNCTUATION|| ub Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION|| ub Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS|| ub Character.UnicodeBlock.CJK_COMPATIBILITY_FORMS|| ub Character.UnicodeBlock.VERTICAL_FORMS) {return true;}else{return false;}}最后上测试代码importjava.util.regex.Pattern;/*** author: Tong* Date: 11/16/13* Time: 10:42 PM*/public classCharClassifier {public static voidmain(String[] args) {CharClassifier classifier newCharClassifier();String[] strings new String[]{Hello, 你好, 㐀㐂㐄, にほんご, 조선어,,.?!#$%^(), 。……()};for (int i 0; i strings.length; i) {String strstrings[i];System.out.println(原字符串为 str);char[] chars str.toCharArray();if (i 5) {System.out.println(使用0x4E00-0x9FCC范围判断字符是否为汉字);for (charaChar : chars) {System.out.println(aChar : (classifier.isChineseByRange(String.valueOf(aChar)) ? YES : NO));}System.out.println(使用UnicodeBlock方法判断字符是否为汉字);for (charaChar : chars) {System.out.println(aChar : (classifier.isChineseByBlock(aChar) ? YES : NO));}System.out.println(使用UnicodeScript方法判断字符是否为汉字);for (charaChar : chars) {System.out.println(aChar : (classifier.isChineseByScript(aChar) ? YES : NO));}}else{System.out.println(判断是否为中文符号);for (charaChar : chars) {System.out.println(aChar : (classifier.isChinesePunctuation(aChar) ? YES : NO));}}}}//使用UnicodeBlock方法判断public boolean isChineseByBlock(charc) {Character.UnicodeBlock ubCharacter.UnicodeBlock.of(c);if (ub Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS|| ub Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A|| ub Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B|| ub Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C|| ub Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D|| ub Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS|| ub Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT) {return true;}else{return false;}}//使用UnicodeScript方法判断public boolean isChineseByScript(charc) {Character.UnicodeScript scCharacter.UnicodeScript.of(c);if (sc Character.UnicodeScript.HAN) {return true;}return false;}//根据UnicodeBlock方法判断中文标点符号public boolean isChinesePunctuation(charc) {Character.UnicodeBlock ubCharacter.UnicodeBlock.of(c);if (ub Character.UnicodeBlock.GENERAL_PUNCTUATION|| ub Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION|| ub Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS|| ub Character.UnicodeBlock.CJK_COMPATIBILITY_FORMS|| ub Character.UnicodeBlock.VERTICAL_FORMS) {return true;}else{return false;}}//使用Unicode编码范围来判断汉字这个方法不准确,因为还有很多汉字不在这个范围之内public booleanisChineseByRange(String str) {if (str null) {return false;}Pattern pattern Pattern.compile([\\u4E00-\\u9FCC]);returnpattern.matcher(str.trim()).find();}}程序输出原字符串为Hello使用0x4E00-0x9FCC范围判断字符是否为汉字H:NOe:NOl:NOl:NOo:NO使用UnicodeBlock方法判断字符是否为汉字H:NOe:NOl:NOl:NOo:NO使用UnicodeScript方法判断字符是否为汉字H:NOe:NOl:NOl:NOo:NO原字符串为你好使用0x4E00-0x9FCC范围判断字符是否为汉字你:YES好:YES使用UnicodeBlock方法判断字符是否为汉字你:YES好:YES使用UnicodeScript方法判断字符是否为汉字你:YES好:YES原字符串为㐀㐂㐄使用0x4E00-0x9FCC范围判断字符是否为汉字㐀:NO㐂:NO㐄:NO使用UnicodeBlock方法判断字符是否为汉字㐀:YES㐂:YES㐄:YES使用UnicodeScript方法判断字符是否为汉字㐀:YES㐂:YES㐄:YES原字符串为にほんご使用0x4E00-0x9FCC范围判断字符是否为汉字に:NOほ:NOん:NOご:NO使用UnicodeBlock方法判断字符是否为汉字に:NOほ:NOん:NOご:NO使用UnicodeScript方法判断字符是否为汉字に:NOほ:NOん:NOご:NO原字符串为조선어使用0x4E00-0x9FCC范围判断字符是否为汉字조:NO선:NO어:NO使用UnicodeBlock方法判断字符是否为汉字조:NO선:NO어:NO使用UnicodeScript方法判断字符是否为汉字조:NO선:NO어:NO原字符串为,.?!#$%^()判断是否为中文符号,:NO.:NO?:NO!:NO:NO#:NO$:NO%:NO^:NO:NO(:NO):NO原字符串为。……()判断是否为中文符号:YES。:YES:YES:YES:YES:YES:YES:YES…:YES…:YES:YES(:YES):YES
http://www.yutouwan.com/news/248186/

相关文章:

  • 巴中网站建设开发公司一个朋友找我做网站该收多少钱
  • 做网站用到哪些软件苏州宣传册设计广告公司
  • 建网站 维护网站建设制作费用预算表
  • 学校网站开发模式wordpress 虚拟商品
  • 动易 手机网站网站后期培训班一般要多少钱
  • 个人网站毕业设计开发网站的目标
  • 网站制作论文参考文献域名注册多少钱
  • 网站开发 技术维护模板下载免费
  • 非响应式网站改响应式网站建设售前怎么做好
  • 阿里巴巴国际贸易网站创办网站
  • 菜谱网站后台代码主机做网站
  • 自己做物流网站房产网站运营方案
  • 浙江省建设业协会网站wordpress怎么兼容浏览器
  • eclipse网站开发自己做影视类网站
  • 网站商城方案wordpress生产app
  • 代运营有哪些套路坑搜索引擎优化seo的策略主要有
  • 网站备案步骤有哪些做包装盒的网站
  • php网站开发技术代码合肥高端网站建设设计
  • vs设置网站开发环境淄博企业网站建设有限公司
  • 营销网站建站爱链网中可以进行链接买卖
  • 织梦网站首页错位wordpress emoji表情
  • 企业网站上的二维码怎么获得网站建设ftp
  • 求推荐专业的网站建设开发域名访问网站 过程
  • 用php做网站的方法潮南最新消息今晚
  • 郑州公司网站如何制作找厂家用什么软件
  • 网站icp备案手续帮别人做网站赚钱
  • dede 中英文网站 怎么做邮件服务商
  • 网站全栰培训963中华室内设计网
  • 做电子请帖的网站wordpress discussion settings
  • 如何在360网站上做软文推广奇趣统计网站谁做的