中文字在unicode里用2字节表示的时候,编码(例如,UTF-16BE)是从4e00-9FBB 如果用char表示,第一个中文字是char c = 19968 (4e00)最后一个中文字,char c = 40891 (9FBB) 如果你是有char数组,直接比较就行了。小于19968大于40891都不是中文 *字*。中文的标点符号,在另外的编码段,具体可以去查www.unicode.org。不过我一般还是使用byte[2]来操作一个中文字,转string也比较方便。 用byte进行转换可以如下面: byte[] b = new String("一").getBytes("UTF-16BE"); int k = b[0] & 0xFF; int x = b[1] & 0xFF; int sum = k * 256 + x;
sum = 19968 byte类型经过一次& 0xFF以后将直接转换成为int类型。
//判断是否中文字 public boolean checkChinese(char word){ if ((word >= 0x4e00)&&(word<=0x9fbb)) return true; else return false; }