java判斷String是否為漢字


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM