如何在java字符串中查找第一个中文字符

时间:2016-05-25 07:47:51

标签: java string chinese-locale

如何在java字符串中查找第一个中文字符 例如:

String str = "xing 杨某某";

如何在上面的str中获得第一个汉字杨的索引。 谢谢!

2 个答案:

答案 0 :(得分:8)

这可能有所帮助:

public static int firstChineseChar(String s) {
    for (int i = 0; i < s.length(); ) {
        int index = i;
        int codepoint = s.codePointAt(i);
        i += Character.charCount(codepoint);
        if (Character.UnicodeScript.of(codepoint) == Character.UnicodeScript.HAN) {
            return index;
        }
    }
    return -1;
}

答案 1 :(得分:2)

在你的情况下,你有四个ascii字符然后你有另一个中文字符,所以你可以使用for循环检查char不再是ascii。

所以,如果char与ascii不同,那么在这种情况下,我的意思是中文字符。

for(int i = 0; i < str.length(); i++) {
    char c = str.charAt(i);
    int char = (int) c;
    if(char < 0 || char > 255) // Is not ascii
    System.out.println("The first chinese char is: " + str.charAt(i);
 }