读书人

JAVA判断字符串是不是为乱码

发布时间: 2012-07-05 07:59:18 作者: rapoo

JAVA判断字符串是否为乱码

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

?

  1. import?java.util.regex.Matcher;??import?java.util.regex.Pattern;??
  2. ??public?class?MessyCodeCheck?{??
  3. ????public?static?boolean?isChinese(char?c)?{??
  4. ????Character.UnicodeBlock?ub?=?Character.UnicodeBlock.of(c);??????if?(ub?==?Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS??
  5. ????????||?ub?==?Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS??????????||?ub?==?Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A??
  6. ????????||?ub?==?Character.UnicodeBlock.GENERAL_PUNCTUATION??????????||?ub?==?Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION??
  7. ????????||?ub?==?Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS)?{????????return?true;??
  8. ????}??????return?false;??
  9. ??}????
  10. ??public?static?boolean?isMessyCode(String?strName)?{??????Pattern?p?=?Pattern.compile("\\s*|\t*|\r*|\n*");??
  11. ????Matcher?m?=?p.matcher(strName);??????String?after?=?m.replaceAll("");??
  12. ????String?temp?=?after.replaceAll("\\p{P}",?"");??????char[]?ch?=?temp.trim().toCharArray();??
  13. ????float?chLength?=?ch.length;??????float?count?=?0;??
  14. ????for?(int?i?=?0;?i?<?ch.length;?i++)?{????????char?c?=?ch[i];??
  15. ??????if?(!Character.isLetterOrDigit(c))?{????
  16. ????????if?(!isChinese(c))?{????????????count?=?count?+?1;??
  17. ??????????System.out.print(c);??????????}??
  18. ??????}??????}??
  19. ????float?result?=?count?/?chLength;??????if?(result?>?0.4)?{??
  20. ??????return?true;??????}?else?{??
  21. ??????return?false;??????}??
  22. ????}??
  23. ????public?static?void?main(String[]?args)?{??
  24. ????System.out.println(isMessyCode("*??JTP.jar??????JTP?????????????"));??????System.out.println(isMessyCode("你好"));??
  25. ??}??}??

读书人网 >开源软件

热点推荐