最近在给1个香港学生做毕设,要求生成随机繁体汉字。慕课网视频讲了如何生成简体汉字,其实繁体汉字也很简单。空话不说上代码
无穷参考这篇文章http://blog.csdn.net/wanghao200906/article/details/45365097
生成简体汉字
/**
* 生成随机简体汉字
*
* @return
*/
private char getRandomChar() {
String str = "";
int hightPos;
int lowPos;
Random random = new Random();
hightPos = (176 + Math.abs(random.nextInt(39)));
lowPos = (161 + Math.abs(random.nextInt(93)));
// 1个汉字由两个字节组成
byte[] b = new byte[2];
b[0] = (Integer.valueOf(hightPos)).byteValue();
b[1] = (Integer.valueOf(lowPos)).byteValue();
try {
str = new String(b, "GBK");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return str.charAt(0);
}
随机生成 繁体汉字
/**
* 生成随机繁体汉字
*
* @return
*/
private char getRandomChar() {
String str = "";
int hightPos;
int lowPos;
Random random = new Random();
hightPos = (176 + Math.abs(random.nextInt(20)));
lowPos = (161 + Math.abs(random.nextInt(93)));
// 1个汉字由两个字节组成
byte[] b = new byte[2];
b[0] = (Integer.valueOf(hightPos)).byteValue();
b[1] = (Integer.valueOf(lowPos)).byteValue();
try {
str = new String(b, "BIG5");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return str.charAt(0);
}
很简单吧。只要把GBK改成BIG5 bit5就是繁体的字库。
可修改的地方是这里
hightPos = (176 + Math.abs(random.nextInt(20)));
lowPos = (161 + Math.abs(random.nextInt(93)));
这两句话是字节的高位和低位。组成了1个汉字。你可以试这改变上面的数值 看看打印的是甚么。不过 176 和 161 最好不要动。他们是汉字高位和地位编码最小值。
下面1个方法是 简体和繁体字的 转换 用的是 :ZHConverter.jar
方法以下
String simplifiedStr = ZHConverter.convert("
------分隔线----------------------------
------分隔线----------------------------