Java判断字符串中是否包含中文方法

时间:2021-08-05 10:22:38

今天和同事在讨论一个问题,需要检查“输入的字符串中是否包含中文”,刚开始想到是用正则表达式,正则表达式中是以[u4e00-u9fa5]来全匹配字符是否是中文,但现在面临的问题是这个字符串中还可能包含英文字符、数字、特殊字符,一时也没想出能匹配该场景的正则表达式,后来在网上搜了下,可以使用Matcher类来解决该问题,大致的代码实现如下:

  1. import java.util.regex.Matcher; 
  2. import java.util.regex.Pattern; 
  3. public class demo { 
  4. static String regEx = "[\u4e00-\u9fa5]"
  5. static Pattern pat = Pattern.compile(regEx); 
  6. public static void main(String[] args) { 
  7. String input = "Hell world!"
  8. System.out.println(isContainsChinese(input)); 
  9. input = "hello world"
  10. System.out.println(isContainsChinese(input)); 
  11.    
  12. public static boolean isContainsChinese(String str) 
  13. Matcher matcher = pat.matcher(str); 
  14. boolean flg = false
  15. if (matcher.find())    { 
  16. flg = true
  17. return flg;