zoukankan      html  css  js  c++  java
  • 随机生成汉字

    汉字主要分成三个区域

    区段 说明 备注
    01-09 区分为特殊字符  682个
    16-55 一级汉字,按拼音排序 55区最胡5位为空  3755个
    56-87 二级汉字,按部首/笔画排序  3008个

    备注:10-15区,88-94区未编码

    基础知识

     一个汉字有两个字节,16位,前8位为高位字节,后8位为低为字节     因此一个汉字由  (高高高高0xa0低低低低0xa0)组成

    代码演示

    1. 获取所有特殊字符,共682个     
      /// <summary>
            /// 查找所有特殊字符
            /// </summary>
            /// <returns></returns>
            static string GetSpecialStr()
            {
                var list = new List<byte>();
                //特殊字符区号为1-9
                for(int area=1;area<=9;area++)
                {
                    for (int site = 1; site <=94; site++)
                    {
                        list.Add((byte)(area+0xa0));
                        list.Add((byte)(site+0xa0));
                    }
                }
                string result= Encoding.GetEncoding("GB2312").GetString(list.ToArray());
                return result;
            }

            2.取一级字,按拼音排序,一级字为常用字

     /// <summary>
            /// 取得一级所有字符(一级字中多为常用字)
            /// </summary>
            /// <returns></returns>
            static string GetOneLevel()
            {
                var list = new List<byte>();
                //16-55区为一级汉字,55区的88-94为空位,未编码
                for (int area = 16; area <= 55; area++)
                {
                    for (int site = 1, siteEnd = (area == 55 ? 88 : 94); site < siteEnd; site++)
                    {
                        list.Add((byte)(area+160));
                        list.Add((byte)(site+160));
                    }
                }
                string result = Encoding.GetEncoding("GB2312").GetString(list.ToArray());
                return result;
            }

     3.获取二级文字

    /// <summary>
            /// 取得二级所有字符(二级汉字大多为生僻字)
            /// </summary>
            /// <returns></returns>
            static string GetTwoLevel()
            {
                var list = new List<byte>();
                //56-87区为二级汉字
                for (int area = 56; area <= 87; area++)
                {
                    for (int site = 1; site <= 94; site++)
                    {
                        list.Add((byte)(area + 0xA0));
                        list.Add((byte)(site + 0xA0));
                    }
                }
                string result = Encoding.GetEncoding("GB2312").GetString(list.ToArray());
                return result;
            }
  • 相关阅读:
    java作用域public ,private ,protected 及不写时的区别
    Android开发环境部署
    java的WebService实践(cxf)
    Servlet小试
    XML内容作为String字符串读取报错
    myeclipse安装svn插件的多种方式
    一个简单的SpringMVC3 程序
    VS2010调试生成的文件
    双系统启动项修复
    安装服务命令
  • 原文地址:https://www.cnblogs.com/cainiaoguoshi/p/2960569.html
Copyright © 2011-2022 走看看