判断一个字符串中是否包含中文字符

下面我将为你提供三种常用的方法:

方法一:使用正则表达式

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class ChineseCharacterChecker {
    public static boolean containsChineseCharacters(String input) {
        String regex = ".*[\\u4e00-\\u9fa5]+.*"; // 正则表达式匹配包含中文字符的字符串
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        return matcher.matches();
    }

    public static void main(String[] args) {
        String str1 = "Hello, 你好吗?"; // 包含中文字符
        String str2 = "Hello, how are you?"; // 不包含中文字符

        System.out.println(containsChineseCharacters(str1)); // 输出true
        System.out.println(containsChineseCharacters(str2)); // 输出false
    }
}

方法二:遍历字符串

public class ChineseCharacterChecker {
    public static boolean containsChineseCharacters(String input) {
        for (char c : input.toCharArray()) {
            if (Character.UnicodeBlock.of(c) == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS) {
                // 判断字符是否为中文字符
                return true;
            }
        }
        return false;
    }

    public static void main(String[] args) {
        String str1 = "Hello, 你好吗?"; // 包含中文字符
        String str2 = "Hello, how are you?"; // 不包含中文字符

        System.out.println(containsChineseCharacters(str1)); // 输出true
        System.out.println(containsChineseCharacters(str2)); // 输出false
    }
}

方法二:使用Java 8 Streams

public boolean containsChinese(String input) {
    return input.chars().anyMatch(c -> Character.toString((char) c).matches("[\\u4e00-\\u9fa5]"));
}