Ответ 1
Теперь 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);
}