/// <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 ("?");

}

C# 获取汉字的拼音首字母的更多相关文章

  1. (转载)delphi中获取汉字的拼音首字母

    delphi中获取汉字的拼音首字母1.py: array[216..247] of string = ({216}'CJWGNSPGCGNESYPB' + 'TYYZDXYKYGTDJNMJ' + ' ...

  2. sql获取汉字的拼音首字母的函数

    ql获取汉字的拼音首字母   if exists (select * from sysobjects where id = object_id(N'[fn_ChineseToSpell]') and ...

  3. C# 获取汉字的拼音首字母和全拼(含源码)

    C# 获取汉字的拼音首字母 一种是把所有中文字符集合起来组成一个对照表:另一种是依照汉字在Unicode编码表中的排序来确定拼音的首字母.碰到多音字时就以常用的为准(第一种方法中可以自行更改,方法为手 ...

  4. 获取汉字的拼音首字母--pinyin

    var pinyin = (function (){ var Pinyin = function (ops){ this.initialize(ops); }, options = { checkPo ...

  5. sql获取汉字的拼音首字母

    if exists (select * from sysobjects where id = object_id(N'[fn_ChineseToSpell]') and xtype in (N'FN' ...

  6. SqlServer 笔记二 获取汉字的拼音首字母

    一.该函数传入字符串,返回数据为:如果为汉字字符,返回该字符的首字母,如果为非汉字字符,则返回本身. 二.用到的知识点:汉字对应的UNICODE值,汉字的排序规则. 三.数据库函数: )) ) AS ...

  7. SqlServer 获取汉字的拼音首字母

    一.该函数传入字符串,返回数据为:如果为汉字字符,返回该字符的首字母,如果为非汉字字符,则返回本身.二.用到的知识点:汉字对应的UNICODE值,汉字的排序规则.三.数据库函数: CREATE FUN ...

  8. C#获取包括一二级汉字的拼音 首字母

    C#获取包括一二级汉字的拼音 首字母 声母 汉字拼音转换 using System; using System.Collections.Generic; using System.Linq; usin ...

  9. js汉字转拼音首字母

    js汉字转拼音首字母 2018-04-09 阅读 1018 收藏 1 原链:segmentfault.com 分享到:   前端必备图书<JavaScript设计模式与开发实践> > ...

随机推荐

  1. Subsequence poj 3061 二分(nlog n)或尺取法(n)

    Subsequence Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9236   Accepted: 3701 Descr ...

  2. 【前端JS、后台C#】编码解码。

    最近做项目,出现中文乱码的问题,特地研究一下. GB2312,指的是中文 UTF8,指的是国标,包含中文.英文. 但是通过JQuery.ajax的Get.Post,如果直接传递中文或者特殊字符的特使字 ...

  3. hdu 4403 简单搜索

    思路:分等号左边和右边进行搜索 #include<iostream> #include<cstdio> #include<cstring> #include< ...

  4. hdu 4739 状压DP

    这里有状态压缩DP的好博文 题目:题目比较神,自己看题目吧 分析: 大概有两种思路: 1.dfs,判断正方形的话可以通过枚举对角线,大概每次减少4个三角形,加上一些小剪枝的话可以过. 2.状压DP,先 ...

  5. 转: Android入门及效率开发

    评注: android第三方开源框架介绍不错 转:https://segmentfault.com/a/1190000004495351 入门 Android官方培训课程中文版:http://huka ...

  6. Sublime_Tip_01

    //JerryWeb //20150601 //WebTool | Sublime ======= Sublime_Tip_01======= 接触了Sublime后,才真正开始爱上了coding # ...

  7. [CAMCOCO][C#]我的系统架构 总图

    之前写的感觉有点乱,把架构的设计图先放上来吧,对照着说. CAMCOCO架构能够支持的模型: 1.B/S程序,比如CRM什么的,和访问普通网站没什么区别,都是从WEB服务器上进行操作: 2.APP的服 ...

  8. WebAPI GET和POST请求的几种方(转发)

    WebAPI GET和POST请求的几种方式 GET请求 1.无参数get请求 一般get请求有两种写法,一种是$.get()   一种是$.ajax({type:"get"}), ...

  9. AspNetPager用法

    最近在做数据管理系统的开发工作,遇到数据表中记录过多的问题,虽然asp.net中已有分页控件,但是非常简陋.AspNetPager是一款非常强大的分页控件,它的介绍我这里就不在赘述了,网上有很多它的介 ...

  10. Android开发的十项注意

    随着移动平台的发展及其应用的不断改善,质量成为决定成败的关键.用户要求他们安装的应用响应快.性能好,如果某个应用不能提供卓越的功能和稳定的用户体验,那注定会被很快卸载: 尽管现在Android智能手机 ...