Java用的是Unicode 編碼char 型變量的范圍是0-65535 無符號的值,可以表示 65536個字符,基本上地球上的字符可被全部包括了
漢字基本集中在[19968,40869]之間,共有20901個漢字
unicode編碼范圍:
漢字:[0x4e00,0x9fa5](或十進制[19968,40869])
數字:[0x30,0x39](或十進制[48, 57])
小寫字母:[0x61,0x7a](或十進制[97, 122])
大寫字母:[0x41,0x5a](或十進制[65, 90])
ASCII表見:
http://home.educities.edu.tw/wanker742126/asm/ap04.html
unicode中文范圍
http://www.iteye.com/topic/558050
漢字編碼范圍:\u4e00-\u9FA5
雙字節字符編碼范圍:\u0391-\uFFE5
雙字節字符編碼范圍
1.GBK (GB2312/GB18030)
/x00-/xff GBK雙字節編碼范圍
/x20-/x7f ASCII
/xa1-/xff 中文 gb2312
/x80-/xff 中文 gbk
2.UTF-8 (Unicode)
/u4e00-/u9fa5 (中文)
/x3130-/x318F (韓文
/xAC00-/xD7A3 (韓文)
/u0800-/u4e00 (日文)
第一種 判斷是否存在漢字
public boolean checkcountname(String countname) { Pattern p = Pattern.compile("[\u4e00-\u9fa5]"); Matcher m = p.matcher(countname); if (m.find()) { return true; } return false; }
用正則表達式去匹配
第二種 判斷整個字符串都由漢字組成
public boolean checkname(String name) { int n = 0; for(int i = 0; i < name.length(); i++) { n = (int)name.charAt(i); if(!(19968 <= n && n <40869)) { return false; } } return true; }
————————————————
版權聲明:本文為CSDN博主「知足--常樂」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/changjiale110/java/article/details/78915969