微软提供了一个Visual Studio International Pack 组件,可以转换简繁体,或者将汉字转换为拼音以及其他语言的支持。
https://www.microsoft.com/zh-cn/download/details.aspx?id=15251这是下载地址。
下载完成后解压,会得到7个msi安装文件,如果只是进行拼音检索,这里只要使用CHSPinYinConv.msi即可,然后安装记好安装位置,安装完毕后,将安装目录下的dll文件添加的工程中去,即可使用了。下面来看一下官方给出的使用方法:
ChineseChar类的构造函数。 |
|
获取这个汉字字符。 |
|
将给出的字符和实例字符的笔画数进行比较。 |
|
检索具有指定笔画数的字符个数。 |
|
获取给定拼音的所有同音字。 |
|
检索具有指定笔画数的所有字符串。 |
|
检索具有指定拼音的字符数。 |
|
检索指定字符的笔画数。 |
|
识别字符是否有指定的读音。 |
|
识别给出的字符是否是实例字符的同音字。 |
|
识别给出的两个字符是否是同音字。 |
|
获取这个字符是否是多音字。 |
|
识别给出的字符串是否是一个有效的汉字字符。 |
|
识别给出的拼音是否是一个有效的拼音字符串。 |
|
识别给出的笔画数是否是一个有效的笔画数。 |
|
获取这个字符的拼音个数。 |
|
获取这个字符的拼音。 |
|
获取这个字符的笔画数。 |
从上面这个表格中可以看到,构造函数参数一个char类型,因此如果stirng类型则需要循环调用。
我们先来看一个字的情况:
static void Main(string[] args) { char ch = '着'; ChineseChar py = new ChineseChar(ch); //注意到Pinyins属性是一个集合因此这里我们用foreach foreach (var item in py.Pinyins) { Console.WriteLine(item); } Console.ReadLine(); }
运行程序,得到结果:
ZHAO1
ZHAO2
ZHAO5
ZHE5
ZHUO2
ZHUO5
可以看到在所有拼音完成后还有几行空行,并且这个字的所有多音字的拼音全部列举出来,后面的那个数字代表了声调,5是轻声。因此常规情况下我们如果要检索拼音,只需取出集合的第一个字符串,并且把最后的数字去掉即可:
static void Main(string[] args) { string str = "王小会"; StringBuilder pys = new StringBuilder(); foreach (var item in str) { ChineseChar py = new ChineseChar(item); //取出第一个拼音,并且把最后的声调去掉 pys.Append(py.Pinyins[0].Remove(py.Pinyins[0].Length-1)); } Console.WriteLine(pys.ToString()); Console.ReadLine(); }
运行程序得到结果:
WANGXIAOHUI
这样就完成了拼音检索功能。