zoukankan      html  css  js  c++  java
  • Silverlight 获取汉字拼音首字母

    1、首先下载codeplex开源库http://encoding4silverlight.codeplex.com/

    2、在项目中添加对DBCS的引用

    3、定义如下方法:

    /// <summary> 
            /// 得到一个汉字的拼音第一个字母,如果是一个英文字母则直接返回大写字母 
            /// </summary> 
            /// <param name="CnChar">单个汉字</param> 
            /// <returns>单个大写字母</returns> 
            public static string GetCharSpellCode(string CnChar)
            {
                long iCnChar;
                //GB2312Encoding encoder = new GB2312Encoding();
                DBCSCodePage.DBCSEncoding encoder= DBCSCodePage.DBCSEncoding.GetDBCSEncoding("gb2312");
                byte[] ZW = encoder.GetBytes(CnChar);
    
                //如果是字母,则直接返回 
                if (ZW.Length == 1)
                {
                    return CnChar.ToUpper();
                }
                else
                {
                    // get the array of byte from the single char 
                    int i1 = (short)(ZW[0]);
                    int i2 = (short)(ZW[1]);
                    iCnChar = i1 * 256 + i2;
                }
    
                // iCnChar match the constant 
                if ((iCnChar >= 45217) && (iCnChar <= 45252))
                {
                    return "A";
                }
                else if ((iCnChar >= 45253) && (iCnChar <= 45760))
                {
                    return "B";
                }
                else if ((iCnChar >= 45761) && (iCnChar <= 46317))
                {
                    return "C";
                }
                else if ((iCnChar >= 46318) && (iCnChar <= 46825))
                {
                    return "D";
                }
                else if ((iCnChar >= 46826) && (iCnChar <= 47009))
                {
                    return "E";
                }
                else if ((iCnChar >= 47010) && (iCnChar <= 47296))
                {
                    return "F";
                }
                else if ((iCnChar >= 47297) && (iCnChar <= 47613))
                {
                    return "G";
                }
                else if ((iCnChar >= 47614) && (iCnChar <= 48118))
                {
                    return "H";
                }
                else if ((iCnChar >= 48119) && (iCnChar <= 49061))
                {
                    return "J";
                }
                else if ((iCnChar >= 49062) && (iCnChar <= 49323))
                {
                    return "K";
                }
                else if ((iCnChar >= 49324) && (iCnChar <= 49895))
                {
                    return "L";
                }
                else if ((iCnChar >= 49896) && (iCnChar <= 50370))
                {
                    return "M";
                }
    
                else if ((iCnChar >= 50371) && (iCnChar <= 50613))
                {
                    return "N";
                }
                else if ((iCnChar >= 50614) && (iCnChar <= 50621))
                {
                    return "O";
                }
                else if ((iCnChar >= 50622) && (iCnChar <= 50905))
                {
                    return "P";
                }
                else if ((iCnChar >= 50906) && (iCnChar <= 51386))
                {
                    return "Q";
                }
                else if ((iCnChar >= 51387) && (iCnChar <= 51445))
                {
                    return "R";
                }
                else if ((iCnChar >= 51446) && (iCnChar <= 52217))
                {
                    return "S";
                }
                else if ((iCnChar >= 52218) && (iCnChar <= 52697))
                {
                    return "T";
                }
                else if ((iCnChar >= 52698) && (iCnChar <= 52979))
                {
                    return "W";
                }
                else if ((iCnChar >= 52980) && (iCnChar <= 53640))
                {
                    return "X";
                }
                else if ((iCnChar >= 53689) && (iCnChar <= 54480))
                {
                    return "Y";
                }
                else if ((iCnChar >= 54481) && (iCnChar <= 55289))
                {
                    return "Z";
                }
                else return ("#");
            }


    4、在TextBox的keyDown事件中调用如下:

    private void textBox1_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.Key != Key.Enter) return;
                string str = GetCharSpellCode(textBox1.Text.Trim());
                MessageBox.Show(str);
            }


    在输入一个汉字后回车,即显示汉字的拼音首字母。

    参考:http://www.cnblogs.com/alexis/archive/2012/02/05/Get_FirstChar_of_ChineseWord.html

  • 相关阅读:
    数据结构笔记
    简单数学
    分析代码练习--长期目标
    C#基础--面向对象计算器
    经常喜欢看的网站
    C#基础--面向过程计算器
    C#中的五个访问修饰符
    SQLServer 游标详解
    快速产生大量顺序数字序列
    VSCode 必装的 10 个高效开发插件
  • 原文地址:https://www.cnblogs.com/liancs/p/3879251.html
Copyright © 2011-2022 走看看