Подтвердить что ты не робот

Обнаружить китайский символ в java

Использование Java, как определить, содержит ли строка строки китайские символы?

    String chineseStr = "已下架" ;

if (isChineseString(chineseStr)) {
  System.out.println("The string contains Chinese characters");
}else{
  System.out.println("The string contains Chinese characters");
}

Не могли бы вы помочь мне решить проблему?

4b9b3361

Ответ 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);
}

Ответ 2

Вы можете попробовать с помощью Google API или API обнаружения языков

API обнаружения языков содержит простую демонстрацию. Вы можете попробовать сначала.