生成隨機 簡體漢字 繁體漢字


最近在給一個香港學生做畢設,要求生成隨機繁體漢字。慕課網視頻講了如何生成簡體漢字,其實繁體漢字也很簡單。廢話不說上代碼

無限參考這篇文章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包吧



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章