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

    扩展方法:

        public static class Spell
        {
            /// <summary>
            /// 获取汉字字符串的拼音首字母
            /// </summary>
            /// <param name="str">字符串</param>
            /// <returns></returns>
            public static string GetSpell(this string str)
            {
                string result = string.Empty;
                str.ForEach(x => result += GetOne(x.ToString()));
                return result;
            }
    
            /// <summary>
            ///  获取单个汉字的首拼音
            /// </summary>
            /// <param name="str"></param>
            /// <returns></returns>
            private static string GetOne(string str)
            {
                byte[] arrCN = Encoding.Default.GetBytes(str);
                if (arrCN.Length > 1)
                {
                    int area = (short)arrCN[0];
                    int pos = (short)arrCN[1];
                    int code = (area << 8) + pos;
                    int[] areacode = { 45217, 45253, 45761, 46318, 46826, 47010, 47297, 47614, 48119, 48119, 49062, 49324, 49896, 50371, 50614, 50622, 50906, 51387, 51446, 52218, 52698, 52698, 52698, 52980, 53689, 54481 };
                    for (int i = 0; i < 26; i++)
                    {
                        int max = 55290;
                        if (i != 25) max = areacode[i + 1];
                        if (areacode[i] <= code && code < max)
                        {
                            return Encoding.Default.GetString(new byte[] { (byte)(65 + i) });
                        }
                    }
                    return "_";
                }
                else return str;
            }
        }
    
    

    调用结果

    string value = "五维思考";
    Console.WriteLine($"{value}({ value.GetSpell()})");
    Console.Read();
    
    //结果:五维思考(WWSK)
    
  • 相关阅读:
    数组迭代方法
    promise
    Gulp执行预处理
    第一个gulp 项目
    vue 单元素过渡
    webpack 入门
    webpack初始化
    v-for 指令
    ajax 工作原理
    面试小问题
  • 原文地址:https://www.cnblogs.com/zhaoshujie/p/15484354.html
Copyright © 2011-2022 走看看