[\u4e00-\u9fa5]
匹配 CJK 統一表意文字基本區(常用漢字約 2 萬字)。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ChineseDetector {
private static final Pattern CHINESE_PATTERN = Pattern.compile("[\u4e00-\u9fa5]");
public static boolean containsChinese(String str) {
if (str == null || str.isEmpty()) return false;
Matcher matcher = CHINESE_PATTERN.matcher(str);
return matcher.find(); // 只要找到一個即返回 true
}
public static void main(String[] args) {
System.out.println(containsChinese("中國China")); // true
System.out.println(containsChinese("Hello World")); // false
System.out.println(containsChinese("")); // false
System.out.println(containsChinese(null)); // false
}
}
public static String extractChinese(String str) {
if (str == null) return "";
Matcher m = CHINESE_PATTERN.matcher(str);
StringBuilder sb = new StringBuilder();
while (m.find()) sb.append(m.group());
return sb.toString();
}
// "Hello 世界 123" → "世界"
\u4e00-\u9fa5(最常用)\u3400-\u4dbf\U00020000-\U0002A6DF(需 JDK 支持補充字符平面)\uF900-\uFAFF如需全覆蓋,可組合:[\u3400-\u4dbf\u4e00-\u9fa5\uF900-\uFAFF]。
Pattern 為靜態常量,避免重複編譯開銷。matcher.find() 比 matches() 快(不需匹配整串)。