在java中检测中文字符

使用Java如何检测String是否包含中文字符?

String chineseStr = "已下架" ; if (isChineseString(chineseStr)) { System.out.println("The string contains Chinese characters"); }else{ System.out.println("The string contains Chinese characters"); } 

你能帮我解决一下这个问题吗?

现在, Character.isIdeographic(int codepoint)会告诉代码点是CJKV(中文,日文,韩文和越南文)的表意文字。

更近的是使用Character.UnicodeScript.HAN。

所以:

 System.out.println(containsHanScript("xxx已下架xxx")); public static boolean containsHanScript(String s) { for (int i = 0; i < s.length(); ) { int codepoint = s.codePointAt(i); i += Character.charCount(codepoint); if (Character.UnicodeScript.of(codepoint) == Character.UnicodeScript.HAN) { return true; } } return false; } 

或者在java 8中:

 public static boolean containsHanScript(String s) { return s.codePoints().anyMatch( codepoint -> Character.UnicodeScript.of(codepoint) == Character.UnicodeScript.HAN); } 

您可以尝试使用Google API或语言检测API

语言检测API包含简单的演示。 你可以先试试。