中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

實現(xiàn)隨機生成漢字的Java代碼

2018-07-20    來源:open-open

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

一、背景知識
GB 2312-80 是中國國家標(biāo)準(zhǔn)簡體中文字符集,全稱《信息交換用漢字編碼字符集·基本集》,由中國國家標(biāo)準(zhǔn)總局發(fā)布,1981年5月1日實施。GB2312 編碼通行于中國大陸;新加坡等地也采用此編碼。中國大陸幾乎所有的中文系統(tǒng)和國際化的軟件都支持 GB 2312。

GB2312 標(biāo)準(zhǔn)共收錄 6763 個漢字,其中一級漢字 3755 個,二級漢字 3008 個;同時收錄了包括拉丁字母、希臘字母、日文平假名及片假名字母、俄語西里爾字母在內(nèi)的 682 個字符。GB2312 的出現(xiàn),基本滿足了漢字的計算機處理需要,它所收錄的漢字已經(jīng)覆蓋中國大陸 99.75% 的使用頻率。對于人名、古漢語等方面出現(xiàn)的罕用字,GB2312 不能處理,這導(dǎo)致了后來 GBK 及 GB18030 漢字字符集的出現(xiàn)。

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

01 - 09 區(qū)為特殊符號。
16 - 55 區(qū)為一級漢字,按拼音排序。
56 - 87 區(qū)為二級漢字,按部首/筆畫排序。
10 - 15 區(qū)及 88 - 94 區(qū)則未有編碼。舉例來說,“啊”字是 GB2312 之中的第一個漢字,它的區(qū)位碼就是 1601。

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

國家標(biāo)準(zhǔn) GB 18030-2005《信息技術(shù) 中文編碼字符集》,是中華人民共和國現(xiàn)時最新的內(nèi)碼字集,與 GB 2312-1980 完全兼容,與 GBK 基本兼容,支持 GB 13000 及 Unicode 的全部統(tǒng)一漢字,共收錄漢字 70244 個,F(xiàn)行版本為國家質(zhì)量監(jiān)督檢驗總局和中國國家標(biāo)準(zhǔn)化管理委員會于2005年11月8日發(fā)布,2006年5月1日實施,為在中國境內(nèi)所有軟件產(chǎn)品支持的強 制標(biāo)準(zhǔn)。

(以上資料來源于“維基百科”)

二、隨機生成常用漢字的 C# 程序

新建Java項目,創(chuàng)建代碼片段:

import java.io.UnsupportedEncodingException;
import java.util.Random;

/**
 * 隨機生成常見的漢字
 * 
 * @author xuliugen
 * 
 */
public class GeneCharTest {
    public static void main(String[] args) {

        for (int i = 1; i < 24; i++) {
            System.out.print(getRandomChar() + "  ");
        }
    }

    private static 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();
            System.out.println("錯誤");
        }

        return str.charAt(0);
    }
}

標(biāo)簽: 代碼 信息技術(shù)

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:OpenCV圖像匹配算法之freak

下一篇:linux常用命令 grep