1. public class ChineseUtils {
  2. public static void main(String[] args) {
  3. String str = "中国 (1).jpg";
  4. try {
  5. String str2 = new String(str.getBytes("iso-8859-1"),"iso-8859-1");
  6. System.out.println(str2);
  7. System.out.println(isMessyCode(str2));
  8. System.out.println(toChinese(str2));
  9. } catch (UnsupportedEncodingException e) {
  10. e.printStackTrace();
  11. }
  12.  
  13. }
  14. private static boolean isChinese(char c) {
  15. Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
  16. if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
  17. || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
  18. || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
  19. || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION
  20. || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
  21. || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {
  22. return true;
  23. }
  24. return false;
  25. }
  26.  
  27. public static boolean isMessyCode(String strName) {
  28. Pattern p = Pattern.compile("\\s*|\t*|\r*|\n*");
  29. Matcher m = p.matcher(strName);
  30. String after = m.replaceAll("");
  31. String temp = after.replaceAll("\\p{P}", "");
  32. char[] ch = temp.trim().toCharArray();
  33. float chLength = ;
  34. float count = ;
  35. for (int i = ; i < ch.length; i++) {
  36. char c = ch[i];
  37. if (!Character.isLetterOrDigit(c)) {
  38. if (!isChinese(c)) {
  39. count = count + ;
  40. }
  41. chLength++;
  42. }
  43. }
  44. float result = count / chLength ;
  45. if (result > 0.4) {
  46. return true;
  47. } else {
  48. return false;
  49. }
  50. }
  51.  
  52. public static String toChinese(String msg){
  53. if(isMessyCode(msg)){
  54. try {
  55. return new String(msg.getBytes("ISO8859-1"), "UTF-8");
  56. } catch (Exception e) {
  57. }
  58. }
  59. return msg ;
  60. }
  61. }

Java字符串中文检测转换的更多相关文章

  1. JAVA字符串编码转换常用类

    无论是对程序的本地化还是国际化,都会涉及到字符编码的转换的问题.尤其在web应用中常常需要处理中文字符,这时就需要进行字符串的编码转换,将字符串编码转换为GBK或者GB2312.一.关键技术点:    ...

  2. java字符串应用之字符串编码转换

    [转载]原文地址:https://blog.csdn.net/zhouyong80/article/details/1900100 无论是对程序的本地化还是国际化,都会涉及到字符编码的转换的问题.尤其 ...

  3. Java基础——基本类型和包装类、基本类型和字符串之间的转换

    基本类型和包装类之间的转换 基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦): 在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更 ...

  4. Java字符串转换

    public class StringConvertToInt{ public static void main(String[] args) { String a ="12a34bW()5 ...

  5. Java 中基本类型和字符串之间的转换

    Java 中基本类型和字符串之间的转换 在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换. 其中,基本类型转换为字符串有三种方法: 1. 使用包装类的 toString() 方法 2. 使 ...

  6. java中数组、集合、字符串之间的转换,以及用加强for循环遍历

    java中数组.集合.字符串之间的转换,以及用加强for循环遍历: @Test public void testDemo5() { ArrayList<String> list = new ...

  7. java字符串转义,把&lt;&gt;转换成<>等字符【原】

    java字符串转义,把<>转换成<>等字符 使用的是commons-lang3-3.4 中的StringEscapeUtils类 package test; import ja ...

  8. Java学习--Java 中基本类型和字符串之间的转换

    Java 中基本类型和字符串之间的转换 在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换. 其中,基本类型转换为字符串有三种方法: 1. 使用包装类的 toString() 方法 2. 使 ...

  9. <摘录>Gson对Java嵌套对象和JSON字符串之间的转换

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,具有良好的跨平台特性.近几年来已经和XML一样成为C/S架构中广泛采用的数据格式.有关JSON的更多知识, ...

随机推荐

  1. vue中watch的用法总结以及报错处理Error in callback for watcher "checkList"

    首先确认 watch是一个对象,一定要当成对象来用. 对象就有键,有值. 键:就是你要监控的那个家伙,比如说$route,这个就是要监控路由的变化,或者是data中的某个变量. 值可以是函数:就是当你 ...

  2. 使用rsync进行多服务器同步

    使用rsync进行多服务器同步 @(Others) 当集群数量很大时,修改配置文件和节点之间的文件同步是一件很麻烦且浪费时间的事情. rsync是linux上实现不同机器之间文件同步.备份的工具,ce ...

  3. 解决python pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query')

    解决python pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query') 学习了:ht ...

  4. TreeView 类 事件

    名称 说明 AfterCheck 在选中树节点复选框后发生. AfterCollapse 在折叠树节点后发生. AfterExpand 在展开树节点后发生. AfterLabelEdit 在编辑树节点 ...

  5. 【ACM】Largest prime factor

    /*打表把素数能组合的数先设置成相应的位数*/ /* if n equals two and n is No.1 position of prime factors  so four position ...

  6. <c:forEach items="${revertList}" varStatus="reverts" var="revert" > <dl >

    <c:forEach>标签用于通用数据循环,它有以下属性 属 性 描 述 是否必须 缺省值 items 进行循环的项目 否 无 begin 开始条件 否 0 end 结束条件 否 集合中的 ...

  7. c#各类型转byte[]或转回

    var tmp = BitConverter.ToInt32(new byte[]{...}); var bytes = BitConverter.GetBytes(tmp); 而String转byt ...

  8. atitit.jQuery Validate验证框架详解与ati Validate 设计新特性

    atitit.jQuery Validate验证框架详解与ati Validate 设计新特性 1. AtiValidate的目标1 2. 默的认校验规则1 2.1. 使用方式 1.metadata用 ...

  9. [na]台式机装原版Win2008R2

    坑了老半天,总结出几点 1,系统os下载: http://msdn.itellyou.cn/ 注:其他地方下载的,装后发现不是起不来就是驱动装不了. 2,u盘里放个压缩软件: 好呀压缩   和  浏览 ...

  10. linux上定时备份mysql数据库

    定时备份数据库 /usr/sbin/backupmysql timestamp=`date +"%Y-%m-%d-%H-%M-%S"` mysqldump -uroot -p'12 ...