JAVA中判断char是否是中文的几种方法
对照最新版本的 Unicode (最少是 6.0 版本,不知道现在是否有 7.0) 里面找从哪个 code point 数字开始到哪个数字结束的是常用中文汉字,另外冷僻汉字肯定不是用单个 char 能表示的,它们是用2个甚至多个 char 表示一个冷僻汉字的。
在这个图片中找 Select Block 里面的汉字 CJK (Chinese, Japan, Koren) 区域,它就是汉字,但有时候汉字可能像外人一样把中日韩的汉字都放一起。
http://zhidao.baidu.com/question/239925413089593284.html
在百度上搜索 unicode 6.0 超大字符集字体支持包,里面提供 unicode 6.0 的 unicode character map 表。
另外你也有一个最傻瓜式的做法,跑个循环把一个整数从 1 到 65535的 cast 成为 char 然后把它打印出来观察哪个范围之内是汉字,这样你就知道怎么判断了。不过要知道这只是汉字的一部分,冷僻字都不在 65535 这 char 表示的 2 字节范围内,JRE 5 开始提供的 String 的 codePoint 支持方法可以用来观察这些事情,就像下面这个百度链接中的样例代码:
http://zhidao.baidu.com/question/1175094949377976899.html
for (char c = 1; c < 65535; c++)
{
System.out.print(String.valueOf(c));
if (c % 255 == 0)
{
System.out.println();
}
}