国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > 综合技术 > 生成随机 简体汉字 繁体汉字

生成随机 简体汉字 繁体汉字

来源:程序员人生   发布时间:2015-06-15 08:46:05 阅读次数:3207次


最近在给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("
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生