得到每个汉字的字首拼音码字母(大写)

简介: /// /// 判断是否为汉字 /// /// 待检测字符串 /// 是汉字返回true public static bool IsChineseChar...
    ///   <summary>  
    ///   判断是否为汉字  
    ///   </summary>  
    ///   <param   name="chrStr">待检测字符串</param>  
    ///   <returns>是汉字返回true</returns>  
    public static bool IsChineseCharacters(string chrStr)
    {
        Regex CheckStr = new Regex("[\u4e00-\u9fa5]");
        return CheckStr.IsMatch(chrStr);
    }


    /// <summary>
    /// 得到每个汉字的字首拼音码字母(大写)
    /// </summary>
    /// <param name="chrStr">输入字符串</param>
    /// <returns>返回结果</returns>
    public static string GetHeadCharacters(string chrStr)
    {
        string strHeadString = string.Empty;


        Encoding gb = System.Text.Encoding.GetEncoding("gb2312");
        for (int i = 0; i < chrStr.Length; i++)
        {
            //检测该字符是否为汉字
            if (!IsChineseCharacters(chrStr.Substring(i, 1)))
            {
                strHeadString += chrStr.Substring(i, 1);
                continue;
            }


            byte[] bytes = gb.GetBytes(chrStr.Substring(i, 1));
            string lowCode = System.Convert.ToString(bytes[0] - 0xA0, 16);
            string hightCode = System.Convert.ToString(bytes[1] - 0xA0, 16);
            int nCode = Convert.ToUInt16(lowCode, 16) * 100 + Convert.ToUInt16(hightCode, 16);      //得到区位码
            strHeadString += FirstLetter(nCode);
        }
        return strHeadString;
    }


    /// <summary>
    /// 通过汉字区位码得到其首字母(大写)
    /// </summary>
    /// <param name="nCode">汉字编码</param>
    /// <returns></returns>
    public static string FirstLetter(int nCode)
    {
        if (nCode >= 1601 && nCode < 1637) return "A";
        if (nCode >= 1637 && nCode < 1833) return "B";
        if (nCode >= 1833 && nCode < 2078) return "C";
        if (nCode >= 2078 && nCode < 2274) return "D";
        if (nCode >= 2274 && nCode < 2302) return "E";
        if (nCode >= 2302 && nCode < 2433) return "F";
        if (nCode >= 2433 && nCode < 2594) return "G";
        if (nCode >= 2594 && nCode < 2787) return "H";
        if (nCode >= 2787 && nCode < 3106) return "J";
        if (nCode >= 3106 && nCode < 3212) return "K";
        if (nCode >= 3212 && nCode < 3472) return "L";
        if (nCode >= 3472 && nCode < 3635) return "M";
        if (nCode >= 3635 && nCode < 3722) return "N";
        if (nCode >= 3722 && nCode < 3730) return "O";
        if (nCode >= 3730 && nCode < 3858) return "P";
        if (nCode >= 3858 && nCode < 4027) return "Q";
        if (nCode >= 4027 && nCode < 4086) return "R";
        if (nCode >= 4086 && nCode < 4390) return "S";
        if (nCode >= 4390 && nCode < 4558) return "T";
        if (nCode >= 4558 && nCode < 4684) return "W";
        if (nCode >= 4684 && nCode < 4925) return "X";
        if (nCode >= 4925 && nCode < 5249) return "Y";
        if (nCode >= 5249 && nCode < 5590) return "Z";
        return "";
    }


 

目录
相关文章
|
2月前
将小写字母全部转换成大写字母
【2月更文挑战第5天】将小写字母全部转换成大写字母。
21 0
|
23天前
输入一个字符判断是数字还是字母 如果是字母是大写字母还是小写字母 是声母还是韵母
输入一个字符判断是数字还是字母 如果是字母是大写字母还是小写字母 是声母还是韵母
17 1
输入一个字符判断是数字还是字母 如果是字母是大写字母还是小写字母 是声母还是韵母
hutool 判断字符串是否全部为字母组成,包括大写和小写字母和汉字
hutool 判断字符串是否全部为字母组成,包括大写和小写字母和汉字
|
5月前
|
搜索推荐
特殊符号
特殊符号
27 0
|
8月前
输入一个字符,判断该字符是大写英文字母,小写英文字母,空格,还是其它字符
输入一个字符,判断该字符是大写英文字母,小写英文字母,空格,还是其它字符
写几个正则表达式:只允许输入汉字、数字、字母、中英文小括号,并且10个字符以内|只允许输入汉字、数字、字母、英文小括号|电话号码正则表达式
写几个正则表达式:只允许输入汉字、数字、字母、中英文小括号,并且10个字符以内|只允许输入汉字、数字、字母、英文小括号|电话号码正则表达式
170 0
带声调的拼音字符比较特殊
带声调的拼音字符比较特殊
97 0
|
C语言
详解:字符转换函数(大写转小写,小写转大写)
详解:字符转换函数(大写转小写,小写转大写)
144 0
详解:字符转换函数(大写转小写,小写转大写)
|
PHP
获取字符串中最后一个字母前面(包含这个字母)和最后这个字母后面的字符串...
获取字符串中最后一个字母前面(包含这个字母)和最后这个字母后面的字符串...
159 0