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


最近在给一个香港学生做毕设,要求生成随机繁体汉字。慕课网视频讲了如何生成简体汉字,其实繁体汉字也很简单。废话不说上代码

无限参考这篇文章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)));
// 一个汉字由两个字节组成
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)));
// 一个汉字由两个字节组成
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)));

这两句话是字节的高位和低位。组成了一个汉字。你可以试这改变上面的数值  看看打印的是什么。不过 176 和 161 最好不要动。他们是汉字高位和地位编码最小值。


下面一个方法是 简体和繁体字的 转换 用的是 :ZHConverter.jar 

方法如下


String simplifiedStr = ZHConverter.convert("輸入妳要查詢的簡體字,點擊轉換按鈕,就能轉換為繁體字",ZHConverter.SIMPLIFIED);
System.out.println(simplifiedStr);
String traditionalStr = ZHConverter.convert("输入妳要查询的简体字,点击转换按钮,就能转换为繁体字。",ZHConverter.TRADITIONAL);
System.out.println(traditionalStr);


打印结果



方法也很简单。直接复制就行了。只不过是导入下jar包。


还有一个方法呢就是 让你现实的字体都为繁体字就行了。那么就是我们常用的 改变字体的方法。也比较简单

在Android中可以引入其他字体,首先要将字体文件保存在assets/fonts/目录下

//得到TextView控件对象
TextView textView =(TextView)findViewById(R.id.custom);
//将字体文件保存在assets/fonts/目录下,创建Typeface对象
Typeface typeFace =Typeface.createFromAsset(getAssets(),"fonts/HandmadeTypewriter.ttf");
//使用字体
textView.setTypeface(typeFace);


 


下载jar包吧



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值