Java判断一个字符串是否有中文一般情况是利用Unicode编码(CJK统一汉字的编码区间:0x4e00–0x9fbb)的正则来做判断,但是其实这个区间来判断中文不是非常精确,因为有些中文的标点符号比如:,。等等是不能识别的。

以下是比较完善的判断方法:CharUtil.java

http://www.micmiu.com/lang/java/java-check-chinese/

import java.util.regex.Pattern;

public class CharUtil {

public static void main(String[] args) {

String[] strArr = new String[] { "www.micmiu.com", "!@#$%^&*()_+{}[]|\"'?/:;<>,.", "!¥……()——:;“”‘’《》,。?、", "不要啊", "やめて", "韩佳人", "???" };

for (String str : strArr) {

System.out.println("===========> 测试字符串:" + str);

System.out.println("正则判断结果:" + isChineseByREG(str) + " -- " + isChineseByName(str));

System.out.println("Unicode判断结果 :" + isChinese(str));

System.out.println("详细判断列表:");

char[] ch = str.toCharArray();

for (int i = 0; i < ch.length; i++) {

char c = ch[i];

System.out.println(c + " --> " + (isChinese(c) ? "是" : "否"));

}

}

}

// 根据Unicode编码完美的判断中文汉字和符号

private static boolean isChinese(char c) {

Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);

if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS

|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B

|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS

|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) {

return true;

}

return false;

}

// 完整的判断中文汉字和符号

public static boolean isChinese(String strName) {

char[] ch = strName.toCharArray();

for (int i = 0; i < ch.length; i++) {

char c = ch[i];

if (isChinese(c)) {

return true;

}

}

return false;

}

// 只能判断部分CJK字符(CJK统一汉字)

public static boolean isChineseByREG(String str) {

if (str == null) {

return false;

}

Pattern pattern = Pattern.compile("[\\u4E00-\\u9FBF]+");

return pattern.matcher(str.trim()).find();

}

// 只能判断部分CJK字符(CJK统一汉字)

public static boolean isChineseByName(String str) {

if (str == null) {

return false;

}

// 大小写不同:\\p 表示包含,\\P 表示不包含

// \\p{Cn} 的意思为 Unicode 中未被定义字符的编码,\\P{Cn} 就表示 Unicode中已经被定义字符的编码

String reg = "\\p{InCJK Unified Ideographs}&&\\P{Cn}";

Pattern pattern = Pattern.compile(reg);

return pattern.matcher(str.trim()).find();

}

}

java中文字符_Java 完美判断中文字符相关推荐

  1. java识别中文_Java 完美判断中文字符的方法

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

  2. C语言 输入一个字符,并判断这个字符属于哪一类字符

    C语言 输入一个字符,并判断这个字符属于哪一类字符. #include<stdio.h> int main () {char ch;ch = getchar();putchar(ch);i ...

  3. C语言程序练习题:从键盘任意输入一个字符,编程判断该字符是数字字符、英文字母、空格还是其他字符。

    从键盘任意输入一个字符, 编程判断该字符是数字字符.英文字母.空格还是其他字符. **输入格式要求:提示信息:"Press a key and then press Enter:" ...

  4. java 判断 中文字符_java中判断字符串中是否有中文字符

    package com.meritit.test; public class TestChart { public static void main(String[] args) throws Exc ...

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

    Java判断一个字符串是否有中文一般情况是利用Unicode编码(CJK统一汉字的编码区间:0x4e00–0x9fbb)的正则来做判断,但是其实这个区间来判断中文不是非常精确,因为有些中文的标点符号比 ...

  6. Java 完美判断中文字符

    原创文章,转载请注明: 转载自micmiu – 大大的技术 | 小小的生活[ http://www.micmiu.com/ ] 本文链接地址: http://www.micmiu.com/lang/j ...

  7. Java如何校验中文乱码_java如何判断是否中文乱码

    中文乱码在项目中是经常会遇到的情况.当我们通过设置request和response字符集,但是还是出现中文乱码的时候,今天给介绍一种通过java方法实现判断string是否为乱码的方法./** * 判 ...

  8. java 数据流对比_Java IO流之字符流字节流区别

    java IO流主要是对字符字节的操作,企业应用比较广泛,比如最常见的导入导出.... 一.IO流的分类: 1.根据处理数据类型的不同分为:字符流(Reader,Writer)和字节流(InputSt ...

  9. java 全角_java 全角半角字符转换的方法实例

    这篇文章主要介绍了java 全角半角字符转换的方法,大家参考使用吧 如果搞明白了Java中全角字符和半角字符之间的关系 那他们之间的转换根本就不是个事. 可以通过下面的程序看看Java中所有字符以及对 ...

最新文章

  1. 数字图像处理:(5)非微分算子在数字图像处理中的应用
  2. 超年轻!93年小伙已是985大学教授、博导!
  3. python 语义网络_从Python代码到APP,你只需要一个小工具:GitHub已超3000星
  4. 181920.net用 文字存档
  5. How to download ABAP development Tool from Fiori Launchpad
  6. Lua 学习笔记(一)
  7. Kibana linux下安装
  8. java上三角数组_二维数组的三角填充 两种java实现的方法
  9. Java JDBC spring-jdbc
  10. 数据密集型应用系统设计--数据存储与检索
  11. Docker容器服务发现方案
  12. Keycloak服务器安装和配置
  13. 【软件相关】EPlan Electric P8 v2.7EPlan Harness ProD v2.7(新方法!)
  14. wifi6无线网卡驱动linux,ROG R6E Omega换wifi 6无线网卡教程
  15. nginx实现rtmp,flv,mp4流媒体服务器
  16. java lr0分析,LR0分析器实验报告.doc
  17. flash 嵌入html代码,flash嵌入html在html网页代码中嵌入Flash文件的解决方案(下).doc...
  18. SpringCloud02Nacos Discovery--服务治理
  19. 亚信科技前端实习面试题
  20. 易基因|一种全新的检测DNA羟甲基化的技术:ACE-Seq

热门文章

  1. flex布局左边固定,右边自适应,右边内容超出会影响布局
  2. SAP市值暴跌与SAP系统间接访问之殇
  3. stm32接收OpenMv发送的数据,并用oled屏显示
  4. JAVA后端生成类似于分享海报图片的功能的实现
  5. 【每日一题】字符串解码
  6. C语言运算符与表达式课件,C语言课件(运算符和表达式).ppt
  7. 百度文字转语音Api,文字长度限制问题
  8. matlab 降低计算精度,MATLAB 计算精度控制
  9. mysql脱密姓名和电话号码
  10. cannot find symbol