.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.背景 目前跟信息采集相关的一个项目提出了这样的一个需求:中国银行等 ...
随机推荐
- 在uboot上创建菜单
一.原理 菜单其实就是一个uboot中的命令,和其他的命令没有什么差别. uboot启动时,如果进入uboot命令模式,先运行这个命令,就会打印出一个菜单界面. 在uboot的命令模式,通过键入“m ...
- unity3d中脚本生命周期(MonoBehaviour lifecycle)
最近在做一个小示例,发现类继承于MonoBehaviour的类,有很多个方法,于是乎必然要问出一个问题:这么多个方法,执行先后顺序是如何的呢?内部是如何进行管理的呢?于是在网上找了许多资料,发现了Ri ...
- How Much Did It Rain? Winner's Interview: 1st place, Devin Anzelmo
How Much Did It Rain? Winner's Interview: 1st place, Devin Anzelmo An early insight into the importa ...
- The Child and Sequence
Codeforces Round #250 (Div. 1)D:http://codeforces.com/problemset/problem/438/D 题意:给你一个序列,然后有3种操作 1x ...
- River Hopscotch(二分)
Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 5473 Accepted: 2379 Description Every ...
- Alignment ( 最长上升(下降)子序列 )
Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 11397 Accepted: 3630 Description In t ...
- C语言基础课程 第一课 Linux环境配置小实战httpserver
网段我需要改成如下 10.重启网络服务 并且查看ip 11. 打开windows的浏览器数人Linux的IP地址出现REDHAT的欢迎界面 11.进入目录 12.编写一个简单的html脚本 13 ...
- Fire Net HDU 1045
简单深搜,可以完全暴力,不会超时的. #include<iostream> #include<cstring> #include<cmath> using name ...
- 图论(差分约束系统):POJ 1201 Intervals
Intervals Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 24099 Accepted: 9159 Descri ...
- 保留n位四舍五入小数
一:可选择保留位数,注释很解释的很详细,上图 二:全部代码 using System; using System.Collections.Generic; using System.Component ...