packagecom.demo.uninstaller.utils;importjava.util.regex.Pattern;importorg.apache.log4j.Logger;public classChineseCharUtil {private static Logger log = Logger.getLogger(ChineseCharUtil.class);//true 时Check正常
public static booleanCheckChineseAndBlankCorrect(String checkString) {return (!hasChineseByRange(checkString)) && (checkString.indexOf(" ") == -1);
}public static voidmain(String[] args) {
log.debug(CheckChineseAndBlankCorrect("份额无法 3fes"));//log.debug(hasChineseByRange("份额无法 3fes"));
}/*** 是否包含中文字符
* 包含中文标点符号
*
*@paramstr
*@return
*/
public static booleanhasChinese(String str) {if (str == null) {return false;
}char[] ch =str.toCharArray();for (charc : ch) {if(isChinese(c)) {return true;
}
}return false;
}/*** 是否全是中文字符
* 包含中文标点符号
*
*@paramstr
*@return
*/
public static booleanisChinese(String str) {if (str == null) {return false;
}char[] ch =str.toCharArray();for (charc : ch) {if (!isChinese(c)) {return false;
}
}return true;
}/*** 是否是中文字符
* 包含中文标点符号
*
*@paramc
*@return
*/
private static boolean isChinese(charc) {
Character.UnicodeBlock ub=Character.UnicodeBlock.of(c);if (ub ==Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS) {return true;
}else if (ub ==Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS) {return true;
}else if (ub ==Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION) {return true;
}else if (ub ==Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A) {return true;
}else if (ub ==Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B) {return true;
}else if (ub ==Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C) {return true;
}else if (ub ==Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D) {return true;
}else if (ub ==Character.UnicodeBlock.GENERAL_PUNCTUATION) {return true;
}else if (ub ==Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {return true;
}return false;
}/*** 是否包含汉字
* 根据汉字编码范围进行判断
* CJK统一汉字(不包含中文的,。《》()“‘'”、!¥等符号)
*
*@paramstr
*@return
*/
public static booleanhasChineseByReg(String str) {if (str == null) {return false;
}
Pattern pattern= Pattern.compile("[\\u4E00-\\u9FBF]+");returnpattern.matcher(str).find();
}/*** 是否全是汉字
* 根据汉字编码范围进行判断
* CJK统一汉字(不包含中文的,。《》()“‘'”、!¥等符号)
*
*@paramstr
*@return
*/
public static booleanisChineseByReg(String str) {if (str == null) {return false;
}
Pattern pattern= Pattern.compile("[\\u4E00-\\u9FBF]+");returnpattern.matcher(str).matches();
}/*** 是否包含汉字
* 根据汉字编码范围进行判断
* CJK统一汉字(不包含中文的,。《》()“‘'”、!¥等符号)
*
*@paramstr
*@return
*/
public static booleanhasChineseByRange(String str) {if (str == null) {return false;
}char[] ch =str.toCharArray();for (charc : ch) {if (c >= 0x4E00 && c <= 0x9FBF) {return true;
}
}return false;
}/*** 是否全是汉字
* 根据汉字编码范围进行判断
* CJK统一汉字(不包含中文的,。《》()“‘'”、!¥等符号)
*
*@paramstr
*@return
*/
public static booleanisChineseByRange(String str) {if (str == null) {return false;
}char[] ch =str.toCharArray();for (charc : ch) {if (c < 0x4E00 || c > 0x9FBF) {return false;
}
}return true;
}
}