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

    ///   <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 "";
    }

 

时间: 2024-08-01 16:06:26

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

获得汉字字符串的首字母(T-SQL函数)

函数|汉字|字符串 /*--获得汉字字符串的首字母--*/if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fGetPy]') and xtype in (N'FN', N'IF', N'TF'))drop function [dbo].[fGetPy]GO --创建取拼音函数create function fGetPy(@Str varchar(500)='')returns varchar(500)as

Mac OS X Lion 系统里查询不认识的生僻字读音拼音的方法

  如果你在网上或文档里看到不认识汉字,想知道它的读音的话.苹果电脑 Mac OS X Lion 系统自带的拼音输入法不仅能打字,还能帮你查询生僻字的拼音.方法如下 点击 Mac 屏幕右上角的输入法图标,切换到 Lion 系统原生输入法,选择 "查找输入码".或者按快捷键 option+shift+L(如果你记得住的话)         把不认识的生僻字粘贴进顶部的输入框,下面就会以汉语拼音+声调的详细方式显示它的读音. 

多行文本框,最多2000个汉字,使用微软拼音输入法,输入第2000个汉字时,按空格所有文字消失!

问题描述 多行文本框,最多2000个汉字,使用微软拼音输入法,输入第2000个汉字时,按空格所有文字消失! 解决方案 解决方案二:强人解决方案三:这与输入法无关.而且限制输入数字只会让你达到最大字数时无法继续输入,楼主情况应该是rp问题了解决方案四:谢谢楼上,不知道"rp"啥意思,我的问题具体是这样的:多行文本框,要求在这个文本框中最多输入2000个汉字,当在这个文本框内输入完第1999个汉字时,使用微软拼音输入法输入第2000个汉字,在输入的过程中,前面的所有汉字消失,最后只留下了最

自动生成助记码中有些字的拼音助记码生成为“*”怎么处理?

问题描述 自动生成助记码中有些字的拼音助记码生成为"*"怎么处理?例如"深圳发展银行"输入完后生成的助记码为"S*FZYX",这种现象怎么处理? 解决方案 解决方案二:该回复于2009-07-21 10:13:57被版主删除

用Java得到字符还有汉字的字摸

问题描述 本人最近遇到一个问题,就是往屏幕上输出汉字,要发给串口的是汉字的字摸.而Java如何获取汉字的字模呢?例如:"我"对应的字摸是:{0x04,0x00,0x24,0x10,0x24,0x12,0x24,0x21,0x7F,0xFE,0xC4,0x40,0x44,0x82,0x04,0x02,0x04,0x04,0xFF,0xC8,0x04,0x30,0x44,0x28},{0x34,0x44,0x05,0x82,0x04,0x1F,0x00,0x00},/*"我&qu

活用WPS表格转换把歌词句首字母改为大写

从网上下载了许多英文歌曲的歌词(lrc格式),发现许多歌词的所有字母都是小写的,特别是句首单词的第一个字母没有大写,虽然并无大碍,但对于追求完美的我来说,也是一个不小的遗憾.通过一翻探索,发现用WPS文字的"表格转换"功能配合"查找替换"功能和"更改大小写"即可一次性将所有句首字母改成大写. 首先,用WPS文字打开歌词文件(或用记事本打开,再复制粘贴到一空白WPS文字中),可以看到如图1的信息.通过观察,发现所有的时间信息都由一对中括号([])括

php实现字符串首字母转换成大写的方法

 这篇文章主要介绍了php实现字符串首字母转换成大写的方法,涉及php中ucfirst及ucwords函数的使用技巧,需要的朋友可以参考下     本文实例讲述了php实现字符串首字母转换成大写的方法.分享给大家供大家参考.具体分析如下: php中可以通过ucfirst函数将一个字符串中的第一个字母转换成大写,而ucwords函数可以将一个字符串中每个单词的首字母转换成大写 ? 1 2 3 4 5 6 7 8 <?php $string = "php string functions ar

编程题-敲代码时真不想再用大小写交换了,如何让首字母置为大写

问题描述 敲代码时真不想再用大小写交换了,如何让首字母置为大写 一段可以将由大于等于一个单词组成的字符串中的每个单词的首字母置为大写状态的源代码?诸位的想法是什么可以在下面留言看看 解决方案 现有的编辑工具应该只会按 英文 的规则进行大小写自动转换,如果你想要你定制的每个英文单词的首字母大写,就可能自己做一个简单的编辑软件来实现. 另外,你可以换编码风格,按 linux 的风格是不需要大写字母的. 解决方案二: 在C++中可以用string类中的字符转换. 解决方案三: 你是写代码实现,还是希望

php实现字符串首字母转换成大写的方法_php技巧

本文实例讲述了php实现字符串首字母转换成大写的方法.分享给大家供大家参考.具体分析如下: php中可以通过ucfirst函数将一个字符串中的第一个字母转换成大写,而ucwords函数可以将一个字符串中每个单词的首字母转换成大写 <?php $string = "php string functions are easy to use."; $sentence = ucfirst($string); $title = ucwords($string); print("$