Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android生成隨機漢字

android生成隨機漢字

編輯:關於Android編程

最近在項目中用到了一個功能,就是要生成隨機漢字,想到很多人使用的很少,但是要用的時候確實又不知道從何入手,那麼今天我將把這段代碼分享出來,供大家參考學習,可以用作工具類,供及時之需;
/**
     * 生成隨機漢子
     * @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) {
            e.printStackTrace();
        }
        return str.charAt(0);
    }
這段代碼中的39 和93都是經驗總結,不會生成那些生僻的漢字,只會生成常見的漢字,不過已經夠用了,基本都包含了常見的所有漢字。為什麼要這樣做呢?下面有關漢字編碼:    

背景知識

GB 2312-80 是中國國家標准簡體中文字符集,全稱《信息交換用漢字編碼字符集·基本集》,由中國國家標准總局發布,1981年5月1日實施。GB2312 編碼通行於中國大陸;新加坡等地也采用此編碼。中國大陸幾乎所有的中文系統和國際化的軟件都支持 GB 2312。

GB2312 標准共收錄 6763 個漢字,其中一級漢字 3755 個,二級漢字 3008 個;同時收錄了包括拉丁字母、希臘字母、日文平假名及片假名字母、俄語西裡爾字母在內的 682 個字符。GB2312 的出現,基本滿足了漢字的計算機處理需要,它所收錄的漢字已經覆蓋中國大陸 99.75% 的使用頻率。對於人名、古漢語等方面出現的罕用字,GB2312 不能處理,這導致了後來 GBK 及 GB18030 漢字字符集的出現。

GB2312 中對所收漢字進行了“分區”處理,每區含有 94 個漢字/符號。這種表示方式也稱為區位碼。

01 - 09 區為特殊符號。16 - 55 區為一級漢字,按拼音排序。56 - 87 區為二級漢字,按部首/筆畫排序。

10 - 15 區及 88 - 94 區則未有編碼。舉例來說,“啊”字是 GB2312 之中的第一個漢字,它的區位碼就是 1601。

每個漢字及符號以兩個字節來表示。第一個字節稱為“高位字節”,第二個字節稱為“低位字節”。“高位字節”使用了 0xA1 - 0xF7(把 01 - 87 區的區號加上 0xA0),“低位字節”使用了 0xA1 - 0xFE(把 01 - 94 位的位號加上 0xA0)。 由於一級漢字從 16 區起始,漢字區的“高位字節”的范圍是 0xB0 - 0xF7,“低位字節”的范圍是 0xA1 - 0xFE,占用的碼位是 72 * 94 = 6768。其中有 5 個空位是 D7FA - D7FE。例如“啊”字在大多數程序中,會以兩個字節,0xB0(第一個字節)0xA1(第二個字節)儲存。(與區位碼對比:0xB0 = 0xA0 + 16, 0xA1 = 0xA0 + 1)。

國家標准 GB 18030-2005《信息技術 中文編碼字符集》,是中華人民共和國現時最新的內碼字集,與 GB 2312-1980 完全兼容,與 GBK 基本兼容,支持 GB 13000 及 Unicode 的全部統一漢字,共收錄漢字 70244 個。現行版本為國家質量監督檢驗總局和中國國家標准化管理委員會於2005年11月8日發布,2006年5月1日實施,為在中國境內所有軟件產品支持的強制標准。

 


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved