C# 获取汉字拼音首字母

2024-05-26 07:08

本文主要是介绍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; 
} //expresstion 
//table of the constant list 
// 'A'; //45217..45252 
// 'B'; //45253..45760 
// 'C'; //45761..46317 
// 'D'; //46318..46825 
// 'E'; //46826..47009 
// 'F'; //47010..47296 
// 'G'; //47297..47613 // 'H'; //47614..48118 
// 'J'; //48119..49061 
// 'K'; //49062..49323 
// 'L'; //49324..49895 
// 'M'; //49896..50370 
// 'N'; //50371..50613 
// 'O'; //50614..50621 
// 'P'; //50622..50905 
// 'Q'; //50906..51386 // 'R'; //51387..51445 
// 'S'; //51446..52217 
// 'T'; //52218..52697 
//没有U,V 
// 'W'; //52698..52979 
// 'X'; //52980..53640 
// 'Y'; //53689..54480 
// 'Z'; //54481..55289 // 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 ("?"); 
}
原文:http://www.cnblogs.com/glacierh/archive/2012/11/11/1276113.html

这篇关于C# 获取汉字拼音首字母的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1003773

相关文章

2. c#从不同cs的文件调用函数

1.文件目录如下: 2. Program.cs文件的主函数如下 using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Windows.Forms;namespace datasAnalysis{internal static

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

用命令行的方式启动.netcore webapi

用命令行的方式启动.netcore web项目 进入指定的项目文件夹,比如我发布后的代码放在下面文件夹中 在此地址栏中输入“cmd”,打开命令提示符,进入到发布代码目录 命令行启动.netcore项目的命令为:  dotnet 项目启动文件.dll --urls="http://*:对外端口" --ip="本机ip" --port=项目内部端口 例: dotnet Imagine.M

Android Environment 获取的路径问题

1. 以获取 /System 路径为例 /*** Return root of the "system" partition holding the core Android OS.* Always present and mounted read-only.*/public static @NonNull File getRootDirectory() {return DIR_ANDR

C# dateTimePicker 显示年月日,时分秒

dateTimePicker默认只显示日期,如果需要显示年月日,时分秒,只需要以下两步: 1.dateTimePicker1.Format = DateTimePickerFormat.Time 2.dateTimePicker1.CustomFormat = yyyy-MM-dd HH:mm:ss Tips:  a. dateTimePicker1.ShowUpDown = t

C#关闭指定时间段的Excel进程的方法

private DateTime beforeTime;            //Excel启动之前时间          private DateTime afterTime;               //Excel启动之后时间          //举例          beforeTime = DateTime.Now;          Excel.Applicat

C# 防止按钮botton重复“点击”的方法

在使用C#的按钮控件的时候,经常我们想如果出现了多次点击的时候只让其在执行的时候只响应一次。这个时候很多人可能会想到使用Enable=false, 但是实际情况是还是会被多次触发,因为C#采用的是消息队列机制,这个时候我们只需要在Enable = true 之前加一句 Application.DoEvents();就能达到防止重复点击的问题。 private void btnGenerateSh

C# double[] 和Matlab数组MWArray[]转换

C# double[] 转换成MWArray[], 直接赋值就行             MWNumericArray[] ma = new MWNumericArray[4];             double[] dT = new double[] { 0 };             double[] dT1 = new double[] { 0,2 };

JS和jQuery获取节点的兄弟,父级,子级元素

原文转自http://blog.csdn.net/duanshuyong/article/details/7562423 先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。 JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素。 <div id="test"><div></div><div></div

C# Hash算法之MD5、SHA

MD5我们用的还是比较多的,一般用来加密存储密码。但是现在很多人觉MD5可能不太安全了,所以都用上了SHA256等来做加密(虽然我觉得都差不多,MD5还是能玩)。 还是跟上一篇说的一样,当一个算法的复杂度提高的同时肯定会带来效率的降低,所以SHA和MD5比较起来的话,SHA更安全,MD5更高效。 由于HASH算法的不可逆性,所以我认为MD5和SHA主要还是应用在字符串的"加密"上。 由于