java判断字符是否乱码
2016-07-27 15:32
543 查看
</pre><pre name="code" class="java">/** * 判断字符是否是中文 * * @param c 字符 * @return 是否是中文 */ public 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.GENERAL_PUNCTUATION || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) { return true; } return false; } /** * 判断字符串是否是乱码 * * @param strName 字符串 * @return 是否是乱码 */ public static boolean isMessyCode(String strName) { Pattern p = Pattern.compile("\s*|t*|r*|n*"); Matcher m = p.matcher(strName); String after = m.replaceAll(""); String temp = after.replaceAll("\p{P}", ""); char[] ch = temp.trim().toCharArray(); float chLength = ch.length; float count = 0; for (int i = 0; i < ch.length; i++) { char c = ch[i]; if (!Character.isLetterOrDigit(c)) { if (!isChinese(c)) { count = count + 1; } } } float result = count / chLength; if (result > 0.4) { return true; } else { return false; } } public static void main(String[] args) { System.out.println(isMessyCode("韩顺平")); System.out.println(isMessyCode("你好")); }
相关文章推荐
- SpringMVC拦截器
- SpringMVC非注解的处理器适配器-HandlerAdapter
- RxJava(三)简单常用操作符
- myeclipse 10的破解以及运行run.bat错误或者双击立即消失的问题
- maven编译javafx找不到
- java 读取大文件
- eclipse中出现注意:此元素既未附加源代码也未附加 Javadoc,因此无法找到 Javadoc。的解决方法
- java工厂设计模式
- spring-boot+mybatis动态sql
- java正则表达式
- Java自学能学会吗?
- eclipse, Log4j配置(真心的详细~)
- 《疯狂JAVA讲义》不可变类
- java实现imread 读图
- java 使用countdownlatch 异步导出excel并merge打包
- 类-静态内部类
- 基于RxJava实现酷炫启动页
- Spring Boot Document Part I
- Java数据库连接池的几种配置方法(以MySQL数据库为例)
- java开发中的23中设计模式