博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于汉语转换拼音的组件
阅读量:5920 次
发布时间:2019-06-19

本文共 2772 字,大约阅读时间需要 9 分钟。

最近在做一个网站的搜索功能,其中有一个功能模块是,当用户输入的汉字是错误的也能识别出来其相似的结果,拿到这个功能后思考之后,决定使用微软的拼音转换组件:Simplified Chinese Pin-Yin Conversion Library  可以把想要搜索的字段换成拼音进行存储

这个类库并不太难,而且微软提供了开发文档:相信一看就会:

代码如下:

///         /// 获取指定字符串中的单个字符的(不包括多音字)拼音        ///         ///         /// 
public static string GetStrPY(string str) { StringBuilder sb = new StringBuilder(); foreach (char obj in str) { try { ChineseChar chineseChar = new ChineseChar(obj); if (ChineseChar.IsValidChar(obj)) { string t = chineseChar.Pinyins[0].ToString().ToLower(); sb.Append(t.Substring(0, t.Length - 1)); } else { sb.Append(obj); } } catch { sb.Append(obj.ToString()); } } return sb.ToString(); } /// /// 获取指定 /// /// ///
public static string GetStrPYs(string str) { StringBuilder sb = new StringBuilder(); string old=string.Empty; foreach (char obj in str) { try { ChineseChar chineseChar = new ChineseChar(obj); for (int i = 0; i < chineseChar.PinyinCount; i++) { string t = chineseChar.Pinyins[i].ToString().ToLower().Substring(0, chineseChar.Pinyins[i].ToString().Length - 1); if ((string.IsNullOrEmpty(old)) || (!old.Equals(t))) { old = t; sb.Append(t); } } } catch { sb.Append(obj.ToString()); } } return sb.ToString(); } /// /// 获取制定字符串的拼音首字母 /// /// ///
public static string GetFirstPinyin(string str) { StringBuilder sb = new StringBuilder(); foreach (char obj in str) { try { ChineseChar chineseChar = new ChineseChar(obj); string t = chineseChar.Pinyins[0].ToString(); sb.Append( t.Substring(0, 1)); } catch { sb.Append( obj.ToString()); } } return sb.ToString(); }

 

 

转载于:https://www.cnblogs.com/One-dream-man/archive/2012/12/24/2831642.html

你可能感兴趣的文章
采用mod_jk模式配置Apache-2.2.4+Tomcat-7.0.32实现负载均衡(超详...
查看>>
NAT网络地址转换(二)
查看>>
入门1班 20180914 chmod umask 等
查看>>
安装apache2.4.6的几个报错
查看>>
未来DDOS会成为大规模破坏网络的武器
查看>>
Git基本操作
查看>>
多环境下的配置管理方案
查看>>
JavaEE细节问题01——访问web资源的相对路径和绝对路径
查看>>
【objective-c】面试题和基本概念【转帖,不保证正确性哦】
查看>>
Python3安装tkinte
查看>>
广平县北方计算机第一届PS设计大赛
查看>>
你知道孩子需要的是什么吗?
查看>>
小小白的Linux运维学习小目标
查看>>
oracle创建dblink
查看>>
实战 MDT 2012(六)---基于MAC地址的部署
查看>>
用 k8s 运行一次性任务 - 每天5分钟玩转 Docker 容器技术(132)
查看>>
智能数据管理时代 你的存储够智能吗?
查看>>
Linux下查看cpu具体信息汇总
查看>>
android 4.0 进行Monkey -- port后的,命令部分列表
查看>>
我的友情链接
查看>>