JAVA判断中文汉字以及中文标点

来源:互联网 发布:php计算数组重复 编辑:程序博客网 时间:2024/06/02 02:47

public class test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String[] strArr = new String[] { "www.baidu.com", "!@#$%^&*()_+{}[]|\"'?/:;<>,.",
                "!¥……()——:;“”‘’《》,。?、", "新垣结衣我老婆", "あらがき ゆい" };
        for (String str : strArr) {
            System.out.println(str + "------------" + isChinese(str.toCharArray()));
        }

    }

    // 根据Unicode编码完美的判断中文汉字和符号
    private static boolean isChinese(char[] chars) {
        boolean result = false;
        for (char c : chars) {
            Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
            if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
                    || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
                    || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
                    || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B
                    || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
                    || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS
                    || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) {
                result = true;
            }
        }
        return result;
    }

}


输出结果

www.baidu.com------------false
!@#$%^&*()_+{}[]|"'?/:;<>,.------------false
!¥……()——:;“”‘’《》,。?、------------true
新垣结衣我老婆------------true
あらがき ゆい------------false