.NET 拼音检索
微软提供了一个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[].Remove(py.Pinyins[].Length-));
}
Console.WriteLine(pys.ToString());
Console.ReadLine();
}
运行程序得到结果:
WANGXIAOHUI
这样就完成了拼音检索功能。
.NET 拼音检索的更多相关文章
- MD5、拼音检索和邮件发送
MD5算法 MD5算法是一种散列(hash)算法(摘要算法,指纹算法),不是一种加密算法(易错) l 为了防止用户偷懒,算两次MD5值,或者加上一个固定的字符串 MD5算法理论上是不可逆的,因此攻击 ...
- easyui combobox 拼音检索快捷选择输入
easyui combobox 拼音检索快捷选择输入 效果如图 $.ajax({ url: UserActionUrl + '?action=listuserworktype', dataType ...
- elasticsearch 拼音检索能力研究
gitchennan/elasticsearch-analysis-lc-pinyin 配置参数少,功能满足需求. 对应版本 elasticsearch2.3.2 对应 elasticsearch-a ...
- 实现首字母或拼音检索-sql语句方式
create function [dbo].[fn_GetPY](@str nvarchar(max),@type int) returns nvarchar(max) as begin ) begi ...
- el-popover 点击input框出现table表,可点击选中,可拼音检索完回车选中
<template> <card> <el-popover placement="right" width="400" trigg ...
- jquery实现仿select列表的即时搜索及拼音搜索
这里提到select,其实不是select,而是用<li><input>标签去仿造一个select,以实现对已有“option”的快速检索功能. 以<input>标 ...
- Solr6.5配置中文分词IKAnalyzer和拼音分词pinyinAnalyzer (二)
之前在 Solr6.5在Centos6上的安装与配置 (一) 一文中介绍了solr6.5的安装.这篇文章主要介绍创建Solr的Core并配置中文IKAnalyzer分词和拼音检索. 一.创建Core: ...
- Simple: 一个支持中文和拼音搜索的 sqlite fts5插件
之前的工作关系,需要在手机上支持中文和拼音搜索.由于手机上存储数据一般都是用 sqlite,所以是基于 sqlite3 fts5 来实现.这段时间再次入门 c++,所以想用 c++ 实现一下,一来用于 ...
- WebGIS中解决使用Lucene进行兴趣点搜索排序的两种思路
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 目前跟信息采集相关的一个项目提出了这样的一个需求:中国银行等 ...
随机推荐
- nginx+uwsgi+django
上一涨讲解了如何使用nginx+uwsgi部署wsgi application 其实django配置方式和 application都一样,因为如果我们对application进行扩展就是一个WSGI ...
- 轻松解决Win8.1连接受限或无法连接WiFi问题
在无线网络连接设置窗口中,找到当前连接的无线网络“WLAN状态”,右击查看“状态”. 在“WLAN状态”窗口中找到“无线属性”. 进入“无线网络属性”窗口,切换到“安全”页面,点击“高级设置”.最重要 ...
- 转:简单介绍 P3P 技术
原文来自于:http://blog.csdn.net/ghj1976/article/details/4889219 以 Internet Explorer 为例,默认情况下,IE的隐私策略如下图所设 ...
- xamarin SimpleAdapter绑定出错问题
问题:今天在实验xamarin中SimpleAdapter绑定到ListView时,出现闪退的现象, 见图: 解决方法: SimpleAdapter中的构造函数public SimpleAdapter ...
- BZOJ 1049 数字序列
Description 现在我们有一个长度为n的整数序列A.但是它太不好看了,于是我们希望把它变成一个单调严格上升的序列.但是不希望改变过多的数,也不希望改变的幅度太大. Input 第一行包含一个数 ...
- Sort it all out
poj1094:http://poj.org/problem?id=1094 题解(一位大神的分析) 一.当输入的字母全部都在前n个大写字母范围内时: (1)最终的图 可以排序: 在输入结束前如果能得 ...
- Transformation
hdu4578:http://acm.hdu.edu.cn/showproblem.php?pid=4578 题意:给一个序列 {an},有 4 种操作.1.将一段区间的数全部加 c.2.将一段区间的 ...
- ALTER TABLE
•ALTER TABLE (表名) ADD (列名 数据类型); •ALTER TABLE (表名) MODIFY (列名 数据类型); •ALTER TABLE (表名) RENAME COLUMN ...
- C Static Inline函数
Inline函数 程序执行时,处理器从Memory中读取代码执行.当程序中调用一个函数时,程序跳到存储器中保存函数的位置开始读取代码执行,执行完后再返回. 为了提高速度,C定义了inline函数,告诉 ...
- RH6030 单通道触摸感应开关
1.概述: RH6030 是一款单通道电容式触摸感应控制开关IC,可以替代传统的机械式开关. 该 IC 采用CMOS 工艺制造,结构简单,性能稳定.IC 可通过外部引脚配置成多种工作模式,可广泛应用于 ...