Java检查字符串是否包含中文字符

该博客介绍了三种Java方法来判断字符串是否只包含字母、数字和汉字。第一种通过正则表达式一次性匹配,第二种和第三种分别利用正则表达式检测中文字符,其中第三种还考虑了中文标点。文章讨论了各方法的优缺点,强调了效率和准确性。
摘要由CSDN通过智能技术生成
/*判断字符串中是否仅包含字母数字和汉字
      *各种字符的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 字符串包含中文

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值