急问:对于一个字符,如果判断其是否为汉字?
我试了一下,java中的汉字是3个字节,而如字母等是1个字节,想知道是怎么设计的。重要的是,对于给定的字符(char型的),要如何才能识别其是否为汉字,最好能知道该汉字的首字母是多少。高手帮忙了!
------解决方案--------------------基本的 CJK 汉字的 Unicode 码范围是 U4E00~U9FBF 的,不过 CJK 还有其他的扩展字符集,由于是 Unicode 组织在 2006 年制订的 Unicode 5.0 标准,在我的 JDK 1.5 中扩展字符集显示的都是“?”,就简单而言可以判断 \u4e00 ~ \u9fbf 之间的皆为汉字。
public static void main(String[] args) {
char c = '槃 ';
System.out.printf( "%c(U+%X): ", c, (int)c);
if(c> = '\u4e00 ' && c <= '\u9fbf '){
System.out.println( "是汉字 ");
}else{
System.out.println( "不是汉字 ");
}
}
------解决方案--------------------public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print( "请输入一个字符: ");
String s = sc.next();
for(int i=0; i <s.length(); i++) {
System.out.printf( "%c -- ", s.charAt(i));
boolean b = (s.charAt(i) + " ").matches( "[\u4e00-\u9faf] ");
System.out.println(b? "是汉字 ": "不是汉字 ");
}
}