如何在Java代码中检查字符串中是否包含中文?

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

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class demo {
static String regEx = "[\u4e00-\u9fa5]";
static Pattern pat = Pattern.compile(regEx);
public static void main(String[] args) {
String input = "Hell world!";
System.out.println(isContainsChinese(input));
input = "hello world";
System.out.println(isContainsChinese(input));
}

public static boolean isContainsChinese(String str)
{
Matcher matcher = pat.matcher(str);
boolean flg = false;
if (matcher.find())    {
flg = true;
}
return flg;
}

转载请注明:运维派 » 如何在Java代码中检查字符串中是否包含中文?

0
3.5k
2
  1. static Pattern pat = Pattern.compile(regEx);
    。。。
    Matcher matcher = pat.matcher(str);

    其实你用的就是Java的正则表达式API,实现的方法也是正则表达式。