`
minghe_zy
  • 浏览: 123600 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

JAVA判断字符串是否为乱码

 
阅读更多

   转载,源文件http://blog.csdn.net/jonay/article/details/6644167

 

  1. import java.util.regex.Matcher;  
  2. import java.util.regex.Pattern;  
  3.   
  4. public class MessyCodeCheck {  
  5.   
  6.   public static boolean isChinese(char c) {  
  7.     Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);  
  8.     if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS  
  9.         || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS  
  10.         || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A  
  11.         || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION  
  12.         || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION  
  13.         || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {  
  14.       return true;  
  15.     }  
  16.     return false;  
  17.   }  
  18.   
  19.   public static boolean isMessyCode(String strName) {  
  20.     Pattern p = Pattern.compile("\\s*|\t*|\r*|\n*");  
  21.     Matcher m = p.matcher(strName);  
  22.     String after = m.replaceAll("");  
  23.     String temp = after.replaceAll("\\p{P}""");  
  24.     char[] ch = temp.trim().toCharArray();  
  25.     float chLength = ch.length;  
  26.     float count = 0;  
  27.     for (int i = 0; i < ch.length; i++) {  
  28.       char c = ch[i];  
  29.       if (!Character.isLetterOrDigit(c)) {  
  30.   
  31.         if (!isChinese(c)) {  
  32.           count = count + 1;  
  33.           System.out.print(c);  
  34.         }  
  35.       }  
  36.     }  
  37.     float result = count / chLength;  
  38.     if (result > 0.4) {  
  39.       return true;  
  40.     } else {  
  41.       return false;  
  42.     }  
  43.   
  44.   }  
  45.   
  46.   public static void main(String[] args) {  
  47.     System.out.println(isMessyCode("*��JTP.jar�ļ����JTP�ļ���ȡ��ͼƬ��Դ"));  
  48.     System.out.println(isMessyCode("你好"));  
  49.   }  
  50. }  
分享到:
评论
1 楼 NeverGiveUpToChange 2015-02-26  
%D6%D0%B9%FA%B8%DF%B9%E6%B8%F1
%D6%D0%B9%FA%B8%DF%B9%E6%B8%F1===GB2312-----中国高规格====---false
%E4%B8%AD%E5%9B%BD%E9%AB%98%E8%A7%84%E6%A0%BC
%E4%B8%AD%E5%9B%BD%E9%AB%98%E8%A7%84%E6%A0%BC===GB2312-----涓��楂����====---true
%D6%D0%B9%FA%B8%DF%B9%E6%B8%F1
%D6%D0%B9%FA%B8%DF%B9%E6%B8%F1===GB2312-----中国高规格====---false
%3F%3F%3F%3F%3F
%3F%3F%3F%3F%3F===GB2312-----?????====---false

最后一个乱码他提示不乱码

相关推荐

    Java判断字符串是否含有乱码实例代码

    本文通过实例代码给大家介绍了Java判断字符串是否含有乱码的方法,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧

    Java 所有字符串转UTF-8 万能工具类-GetEncode.java

    不需要关心接受的字符串编码是UTF_8还是GBK,还是ios-8859-1,自动转换为utf-8编码格式,无需判断字符串原有编码,用法://处理编码String newStr = GetEncode.transcode(oldStr);

    Java进制/时间/日期/字符串/流算法大全

    Java 的16 进制与字符串的相互转换函数 JAVA 时间格式化处理 将毫秒转化为日期 文本的倒序输出 判断一个数字是奇数还是偶数 用Hibernate 实现分页 35 选7 彩票程序 获取GMT8 时间 中文乱码转换 Big5 字与Unicode 的...

    java读取解析DXF文件信息.rar

    java解析DXF文件信息,这里涉及到各种转换字符串编码的操作,解决了解析过程中遇到中文的乱码问题,包括circle,ellipse,line,lwpolyline等,还涉及到从DXF文件中读取一个字符串、判断CIRCLE实体、判断ellipse实体、...

    java 算法

    多线程的世界时钟,显示巴黎,罗马,上海时间, AWT界面,Java日期格式化及其使用例子,几个常用方法,判断字符是否属于中文,异常处理类,去掉字符串中重复的子字符串,将指定byte数组以16进制的形式打印到控制台,...

    java版的算法大全

    Java的16进制与字符串的相互转换函数 JAVA时间格式化处理 将毫秒转化为日期 文本的倒序输出 判断一个数字是奇数还是偶数 35选7彩票程序 中文乱码转换

    Java面试宝典2020修订版V1.0.1.doc

    35、MySQL、SqlServer、oracle写出字符存储、字符串转时间 52 36、update语句可以修改结果集中的数据吗? 53 37、oracle如何设置主键自动增长? 53 38、表连接、子查询的区别是什么?它们可以相互转化吗?你倾向于用...

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

    实例070 判断字符串是否为数字 89 实例071 验证IP地址的有效性 90 实例072 鉴别非法电话号码 91 4.3 操作字符串 92 实例073 根据标点符号对字符串进行分行 92 实例074 将字符串的每个字符进行倒序输出 94 实例075 ...

    freemarker语法完整版

    item_has_next:判断list是否还有值 用例 Freemarker代码 ["winter", "spring", "summer", "autumn"]&gt; &lt;#list seq as x&gt; ${x_index + 1}. ${x},&lt;/#if&gt; &lt;/#list&gt; ["winter", "spring", "summer", "autumn"]...

    Java学习笔记-个人整理的

    {4.14}数组转换为集合}{89}{section.4.14} {4.15}Map的迭代}{90}{section.4.15} {4.15.1}字符统计}{91}{subsection.4.15.1} {5}格式化输入输出}{94}{chapter.5} {5.1}时间与日期}{94}{section.5.1} {5.1.1}...

    [开源]用SWT/JFace实现的放大镜软件jZoomer v1.2.0(附源码)

    Bug修正: ·解决内存溢出Bug ·解决字符串乱码Bug `解决拖拽位置不正常Bug 2. 功能添加: ·添加SystemPropertiesReader类,用于解析系统配置文件system.properties ·完成软件的国际化,...

    poi最新版本及收集的帮助资料

    //设置中西文结合字符串 row.createCell((short)6).setCellType(HSSFCell.CELL_TYPE_ERROR); //建立错误cell FileOutputStream fileOut = new FileOutputStream("workbook.xls"); wb.write(fileOut); fileOut.close...

    HttpClient以及获取页面内容应用

    通过一个URLConnection或者一个保存有网页内容的字符串来初始化Parser,或者使用静态函数来生成一个Parser对象。 ParserFeedback的代码很简单,是针对调试和跟踪分析过程的,一般不需要改变。而使用Lexer???? ...

    jpivot学习总结.doc

    visible 否 boolean 是 用来设置该组件是否可见,当该属性为 false 时 WCF 标签半角不显示该组件。 role 否 String 是 Role 的名称,如: role=”tomcat” 就允许当前用户角色为 tomcat 的访问该控件, ...

    asp.net知识库

    .NET 2.0中的字符串比较 小试ASP.NET 2.0的兼容性 为 asp.net 2.0 的菜单控件增加 target 属性 ASP.NET 2.0 的内部变化 常见的 ASP.NET 2.0 转换问题和解决方案 Asp.Net2.0无刷新客户端回调 体验.net 2.0 的优雅(1...

Global site tag (gtag.js) - Google Analytics