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
或者如果使用JDK1.7,那么UnicodeScript方法会更方便,因为UnicodeScript.HAN 包括了上面所列的5个UnicodeBlock:
//使用UnicodeScript方法判断 public boolean isChineseByScript(char c) { Character.UnicodeScript sc = Character.UnicodeScript.of(c); if (sc == Character.UnicodeScript.HAN) { return true; } return false; }