• Java字符串中文检测转换


    public class ChineseUtils {
        public static void main(String[] args) {
            String str = "中国 (1).jpg";
            try {
                String str2 = new String(str.getBytes("iso-8859-1"),"iso-8859-1");
                System.out.println(str2);
                System.out.println(isMessyCode(str2));
                System.out.println(toChinese(str2));
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
    
        }
        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.GENERAL_PUNCTUATION
                    || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
                    || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {
                return true;
            }
            return false;
        }
    
        public static boolean isMessyCode(String strName) {
            Pattern p = Pattern.compile("\s*|	*|
    *|
    *");
            Matcher m = p.matcher(strName);
            String after = m.replaceAll("");
            String temp = after.replaceAll("\p{P}", "");
            char[] ch = temp.trim().toCharArray();
            float chLength = 0 ;
            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;
                    }
                    chLength++;
                }
            }
            float result = count / chLength ;
            if (result > 0.4) {
                return true;
            } else {
                return false;
            }
        }
    
    
        public static String toChinese(String msg){
            if(isMessyCode(msg)){
                try {
                    return new String(msg.getBytes("ISO8859-1"), "UTF-8");
                } catch (Exception e) {
                }
            }
            return msg ;
        }
    }
  • 相关阅读:
    [JAVA]基本数据类型
    [JAVA]生成随机数
    Java编写POST请求
    修改Tomcat的端口
    Windows设置Tomcat的管理员的用户和密码
    JMeter环境搭建
    LoadRunner通过火狐浏览器录制脚本后,进行回放时,回放脚本很慢
    JVM性能分析与优化:
    Web服务器性能监控分析与优化
    LoadRunner性能测试结果分析
  • 原文地址:https://www.cnblogs.com/sagech/p/5671501.html
Copyright © 2020-2023  润新知