/*判断字符串中是否仅包含字母数字和汉字 *各种字符的unicode编码的范围: * 汉字:[0x4e00,0x9fa5](或十进制[19968,40869]) * 数字:[0x30,0x39](或十进制[48, 57]) *小写字母:[0x61,0x7a](或十进制[97, 122]) * 大写字母:[0x41,0x5a](或十进制[65, 90]) */ public static boolean isLetterDigitOrChinese(String str) { String regex = "^[a-z0-9A-Z\u4e00-\u9fa5]+$"; return str.matches(regex); }
二、实现方式二
1、利用正则表达式:
public static boolean isContainChinese(String str) { Pattern p = Pattern.compile("[\u4e00-\u9fa5]"); Matcher m = p.matcher(str); if (m.find()) { return true; } return false; }
2、优缺点:
a.缺点:只能检测出中文汉字不能检测中文标点;
b.优点:利用正则效率高;
三、方式三
1、改造正则
/** * 字符串是否包含中文 * * @param str 待校验字符串 * @return true 包含中文字符 false 不包含中文字符 * @throws EmptyException */ 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); if (m.find()) { return true; } return false; }
2、优缺点:
a.优点:效率既高又能检测出中文汉字和中文标点;
b.缺点:目前尚未发现。
转载:
java用正则表达式判断字符串中是否仅包含英文字母、数字和汉字_张润东的博客-CSDN博客_java正则只包含英文
Java检查字符串是否包含中文字符_通往精英的成长之路-CSDN博客_java 字符串包含中文