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)
    
  • 相关阅读:
    WebAPI 资料
    TransactionScope事务类的使用
    Go入门笔记34-Go 使用Ioctl
    解决XShell XFTP传输Go可执行文件导致出错问题
    Go入门笔记33-Go 交叉编译
    博客园添加横向菜单
    C# 正则替换、Json格式化等
    Ubuntu批量修改文件后缀
    Linux免密登录
    Go入门笔记32-继承
  • 原文地址:https://www.cnblogs.com/zhaoshujie/p/15484354.html
Copyright © 2011-2022 走看看