Java字符串中文检测转换
2024-10-21 04:18:26
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*|\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 = ;
float count = ;
for (int i = ; i < ch.length; i++) {
char c = ch[i];
if (!Character.isLetterOrDigit(c)) {
if (!isChinese(c)) {
count = count + ;
}
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 ;
}
}
最新文章
- JS魔法堂:初探传说中的setImmediate函数
- How to create a project with existing folder of files in Visual Studio?
- kuangbin_ShortPath J (POJ 1511)
- HDOJ ----Phone List
- 手动实现 KVO
- spring集成Apache的ActiveMQ
- javaScript中有关正则表达式的用法总结
- UVA 718 - Skyscraper Floors(数论)
- MySQL能够承受上亿万条的数据量的架构
- each用法的总结
- 项目冲刺 Sixth
- window.onresize监听事件
- linux测试工程介绍(Linux Test Project)
- 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-4 模态弹出框--结构分析
- python基础学习1-正则表达式
- JS组件系列——JsPlumb制作流程图及相关效果详解
- FAQ系列 | 如何保证主从复制数据一致性(转)
- Nginx Open File Cache
- golang学习之slice基本操作
- Linux中如何安装Apache服务器
热门文章
- 推送代码分支时出现:fatal: &#39;origin&#39; does not appear to be a git repository
- HDUOJ A Mathematical Curiosity 1017
- java 过滤器(理解二)
- Android中Native和H5交互
- 使用python语言编写脚本控制freeswitch总结
- JS判断一个字符串是否包含一个子串函数.
- IFA Basics
- linux 安装mysql 5.6.11
- [Exception IOS 4] - could not build module &#39;foundation&#39;
- XML Schema学习札记(1)——基础总览