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

    /// <summary>

    /// 在指定的字符串列表CnStr中检索符合拼音索引字符串

    /// </summary>

    /// <param name="CnStr">汉字字符串</param>

    /// <returns>相对应的汉语拼音首字母串</returns>

    public static string GetSpellCode(string CnStr) {

      string strTemp="";

      int iLen=CnStr.Length;

      int i=0;

      for (i=0;i<=iLen-1;i++) {

         strTemp+=GetCharSpellCode(CnStr.Substring(i,1));

      }

      return strTemp;

    }

    /// <summary>

    /// 得到一个汉字的拼音第一个字母,如果是一个英文字母则直接返回大写字母

    /// </summary>

    /// <param name="CnChar">单个汉字</param>

    /// <returns>单个大写字母</returns>

    private static string GetCharSpellCode(string CnChar) {

      long iCnChar;

      byte[] ZW = System.Text.Encoding.Default.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 ("?");

    }

  • 相关阅读:
    VS2013 此模板尝试加载组件程序集”NuGet.VisualStudio.interop,Version=1.0.0.0 的解决办法
    备份集中的数据库备份与现有的xx数据库不同”解决方法
    Couchbase 集群小实践
    EF5+MVC4系列(1) Podwerdesigner15.1设计数据库;PD中间表和EF实体模型设计器生成中间表的区别;EF5.0 表关系插入数据(一对多,多对多)
    Vue个人笔记
    [转载] HashMap的工作原理-hashcode和equals的区别
    用VS Code写C#
    MongoDB学习笔记一:MongoDB基础
    Vue学习笔记十三:Vue+Bootstrap+vue-resource从接口获取数据库数据
    Vue学习笔记十二:vue-resource的基本使用
  • 原文地址:https://www.cnblogs.com/hefy/p/4598241.html
Copyright © 2011-2022 走看看