java判断字符串是否是中文

思路

Java用的是Unicode 编码char 型变量的范围是0-65535 无符号的值,可以表示 65536个字符,基本上地球上的字符可被全部包括了

汉字基本集中在[19968,40869]之间,共有20901个汉字

unicode编码范围:
汉字:[0x4e00,0x9fa5](或十进制[19968,40869])
数字:[0x30,0x39](或十进制[48, 57])
小写字母:[0x61,0x7a](或十进制[97, 122])
大写字母:[0x41,0x5a](或十进制[65, 90])
/x3130-/x318F (韩文
/xAC00-/xD7A3 (韩文)
/u0800-/u4e00 (日文)
public static boolean isContainChinese(String str) throws EmptyException {
 
    if (StringUtils.isEmpty(str)) {
        throw new EmptyException("sms context is empty!");
    }
    Pattern p = Pattern.compile("[\u4E00-\u9FA5|\\!|\\,|\\。|\\(|\\)|\\《|\\》|\\“|\\”|\\?|\\:|\\;|\\【|\\】]");
    Matcher m = p.matcher(str);
    return m.find();
}

注:Pattern.compile("[\u4e00-\u9fa5]")只能检测出中文汉字不能检测中文标点

Python判断字符串是否是中文(utf-8编码)

不考虑中文标点的情况

		for ch in str:
            if u'\u4e00' <= ch <= u'\u9fff':
                language = "zh_CN"
                break

你可能感兴趣的:(python,python)