微软提供了一个Visual Studio International Pack 组件,可以转换简繁体,或者将汉字转换为拼音以及其他语言的支持。

https://www.microsoft.com/zh-cn/download/details.aspx?id=15251这是下载地址。

下载完成后解压,会得到7个msi安装文件,如果只是进行拼音检索,这里只要使用CHSPinYinConv.msi即可,然后安装记好安装位置,安装完毕后,将安装目录下的dll文件添加的工程中去,即可使用了。下面来看一下官方给出的使用方法:

ChineseCharNew(Char)

ChineseChar类的构造函数。

ChineseCharacter

获取这个汉字字符。

CompareStrokeNumber(Char)

将给出的字符和实例字符的笔画数进行比较。

GetCharCount(Int16)

检索具有指定笔画数的字符个数。

GetChars(String)

获取给定拼音的所有同音字。

GetChars(Int16)

检索具有指定笔画数的所有字符串。

GetHomophoneCount(String)

检索具有指定拼音的字符数。

GetStrokeNumber(Char)

检索指定字符的笔画数。

HasSound(String)

识别字符是否有指定的读音。

IsHomophone(Char)

识别给出的字符是否是实例字符的同音字。

IsHomophone(Char, Char)

识别给出的两个字符是否是同音字。

IsPolyphone

获取这个字符是否是多音字。

IsValidChar(Char)

识别给出的字符串是否是一个有效的汉字字符。

IsValidPinyin(String)

识别给出的拼音是否是一个有效的拼音字符串。

IsValidStrokeNumber(Int16)

识别给出的笔画数是否是一个有效的笔画数。

PinyinCount

获取这个字符的拼音个数。

Pinyins

获取这个字符的拼音。

StrokeNumber

获取这个字符的笔画数。

从上面这个表格中可以看到,构造函数参数一个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[].Remove(py.Pinyins[].Length-));
}
Console.WriteLine(pys.ToString());
Console.ReadLine();
}

运行程序得到结果:

WANGXIAOHUI

这样就完成了拼音检索功能。

.NET 拼音检索的更多相关文章

  1. MD5、拼音检索和邮件发送

    MD5算法 MD5算法是一种散列(hash)算法(摘要算法,指纹算法),不是一种加密算法(易错) l  为了防止用户偷懒,算两次MD5值,或者加上一个固定的字符串 MD5算法理论上是不可逆的,因此攻击 ...

  2. easyui combobox 拼音检索快捷选择输入

    easyui combobox 拼音检索快捷选择输入 效果如图   $.ajax({ url: UserActionUrl + '?action=listuserworktype', dataType ...

  3. elasticsearch 拼音检索能力研究

    gitchennan/elasticsearch-analysis-lc-pinyin 配置参数少,功能满足需求. 对应版本 elasticsearch2.3.2 对应 elasticsearch-a ...

  4. 实现首字母或拼音检索-sql语句方式

    create function [dbo].[fn_GetPY](@str nvarchar(max),@type int) returns nvarchar(max) as begin ) begi ...

  5. el-popover 点击input框出现table表,可点击选中,可拼音检索完回车选中

    <template> <card> <el-popover placement="right" width="400" trigg ...

  6. jquery实现仿select列表的即时搜索及拼音搜索

    这里提到select,其实不是select,而是用<li><input>标签去仿造一个select,以实现对已有“option”的快速检索功能. 以<input>标 ...

  7. Solr6.5配置中文分词IKAnalyzer和拼音分词pinyinAnalyzer (二)

    之前在 Solr6.5在Centos6上的安装与配置 (一) 一文中介绍了solr6.5的安装.这篇文章主要介绍创建Solr的Core并配置中文IKAnalyzer分词和拼音检索. 一.创建Core: ...

  8. Simple: 一个支持中文和拼音搜索的 sqlite fts5插件

    之前的工作关系,需要在手机上支持中文和拼音搜索.由于手机上存储数据一般都是用 sqlite,所以是基于 sqlite3 fts5 来实现.这段时间再次入门 c++,所以想用 c++ 实现一下,一来用于 ...

  9. WebGIS中解决使用Lucene进行兴趣点搜索排序的两种思路

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 目前跟信息采集相关的一个项目提出了这样的一个需求:中国银行等 ...

随机推荐

  1. ng-class css样式

    <style> .error{background-color: red;} .warning{background-color: yellow;} </style> < ...

  2. Sequoyah 本机开发Native Development: Invalid path for NDK(路径无效) 解决方案

    打开window菜单下的preference选项.选择Android,Native Development(本地开发) 选择你的NDK安装目录. 但是,这个插件目前仅支持ndk的r4和r5版本,更高版 ...

  3. cocos creater 简单的跳跃动作。

    因为最近一段时间有打算做一个2D游戏的想法,就顺便学习了一下cocos,很惊异的它的脚本编写语言竟然支持js,正好以前对js有一定的了解,就临时拿起来了. 这是来自官方的一个实例,不过在参考过程中,发 ...

  4. 使用jQuery UI方法

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. BZOJ 1059 矩阵游戏

    Description 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏--矩阵游戏.矩阵游戏在一个\(N \times N\)黑白方阵进行(如同国际象棋一般,只是颜色是随意的). ...

  6. BZOJ 1018 堵塞的交通

    Description 有一天,由于某种穿越现象作用,你来到了传说中的小人国.小人国的布局非常奇特,整个国家的交通系统可以被看成是一个2行C列的矩形网格,网格上的每个点代表一个城市,相邻的城市之间有一 ...

  7. [BZOJ 3626] [LNOI2014] LCA 【树链剖分 + 离线 + 差分询问】

    题目链接: BZOJ - 3626 题目分析 考虑这样的等价问题,如果我们把一个点 x 到 Root 的路径上每个点的权值赋为 1 ,其余点的权值为 0,那么从 LCA(x, y) 的 Depth 就 ...

  8. index rang scan

    根:分支的范围,范围块的地址 ----- begin tree dump branch: 0x1000c93 16780435 (0: nrow: 5, level: 1)    leaf: 0x10 ...

  9. POJ-3693-Maximum repetition substring(后缀数组-重复次数最多的连续重复子串)

    题意: 给出一个串,求重复次数最多的连续重复子串 分析: 比较容易理解的部分就是枚举长度为L,然后看长度为L的字符串最多连续出现几次. 既然长度为L的串重复出现,那么str[0],str[l],str ...

  10. Qt入门(7)——窗口几何结构

    QWidget提供了几个处理窗口几何结构的函数.这些函数中的几个操作纯客户区域(例如不包含窗口框架的窗口),其它一些包括窗口框架.它们之间的区别在某种意义上被完成覆盖明显地最普通的方法.包括窗口的框架 ...