/// <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. 安装PIL库时提示python未注册错误(自定义python安装路径)

    import sys from _winreg import * # tweak as necessary version = sys.version[:3] installpath = sys.pr ...

  2. Souerce 之 图片格式

    一.基本概念 1.矢量图与位图 1)矢量图-完美的几何图形 矢量图是通过组成图形的一些基本元素,如点.线.面,边框,填充色等信息通过计算的方式来显示图形的.就好比我们在几何学里面描述一个圆可以通过它的 ...

  3. c#删除转义字符的方法,删除\0后所有字符串(菜鸟级别)

    string str = "78738\01212"; string str_2= Regex.Unescape(str); int index = str_2.IndexOf(& ...

  4. C语言第六节基本运算符

    算术运算 C语言一共有34种运算符,包括了常见的加减乘除运算 加法运算+ 除开能做加法运算,还能表示正号:+5.+90 减法运算- 除开能做减法运算,还能表示符号:-10.-29 乘法运算* 注意符号 ...

  5. 1.4.1.Documents,Fields和Schema概述

    Documents,Fields和Schema概述 solr的基本前提是非常简单,你可以给它很多信息,然后可以向它提出问题,获取你想要的问题的信息.所有信息输入的地方就叫做索引或者更新.当你提出问题时 ...

  6. [PHP] htaccess 探秘

    .htaccess访问控制(Allow/Deny) 1. 验证是否支持.htaccess 在目录下新建一个.htaccess 文件,随笔输入一串字符(毫无意义),看看什么反应,如果是500错误,说明目 ...

  7. 【Android 界面效果28】Android应用中五种常用的menu

    Android Menu在手机的应用中起着导航的作用,作者总结了5种常用的Menu. 1.左右推出的Menu 前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新.最早使用左右推出菜单的,听说 ...

  8. leetcode 题解:Binary Tree Level Order Traversal (二叉树的层序遍历)

    题目: Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to ri ...

  9. Table of Contents - Spring

    The IoC container Spring 容器 属性注入 & 构造注入 Bean 实例的创建方式 p-namespace & c-namespace 集合属性的注入 作用域 延 ...

  10. canvas-js贝塞尔曲线代码在线生成工具

    详细内容请点击 canvas贝塞尔曲线代码在线生成工具 可以快速生成二次.三次贝塞尔曲线的源码生成器,方便经常使用到canvas画图的同学使用,可以直接预览效果随意画出自己想要的图像. 生成源码效果预 ...