java 按拼音模糊搜索汉字_C#中拼音模糊匹配汉字智能搜索
准备:
微软官方出了一个专用的汉字转拼音包Microsoft Visual Studio International Pack 1.0 SR1
首先到官网http://www.microsoft.com/zh-cn/download/details.aspx?id=15251下载安装包,下载完后解压vsintlpack1,里面有7个安装包,只需安装CHSPinYinConv(跟拼音相关)和CHTCHSConv(简体和繁体间的转换)这两个包就可以了,安装完毕后,需要在VS里添加引用。
将C:\Program Files\Microsoft Visual Studio International Pack\Simplified Chinese Pin-Yin Conversion Library 和C:\Program Files\Microsoft Visual Studio International Pack\Traditional Chinese to Simplified Chinese Conversion Library and Add-In Tool下的dll 拷贝到项目的dll文件夹下(我的是Reference),接下来添加引用
Code:
using Microsoft.International.Converters.PinYinConverter;
#region==模糊搜索==
private void MistinessSel()
{
string selwords = GetFormString("words");
if (selwords != "")
{
//判断是汉字还是字母
string pattern = @"^[A-Za-z]+$";
Regex regex = new Regex(pattern);
List list = null;
List categorylist = new List();
//字母模糊搜索
if (regex.IsMatch(selwords))
{
selwords = selwords.ToLower();
list = new BLL.t_category().GetModelList(" ParentID!=0 ");
//拼音模糊查询法
for (int i = 0; i < list.Count; i++)
{
//StringBuilder str = new StringBuilder();//定义一个可变长度的字符串
//char[] chs; //定义一个字符数组来接收每个汉字的拼音
string spells = "";
//遍历F_ConnName字段中所有汉字
foreach (char c in list[i].Name.ToCharArray())
{
//验证该汉字是否合法
if (ChineseChar.IsValidChar(c))
{
ChineseChar CC = new ChineseChar(c);
//将该汉字转化为拼音集合
ReadOnlyCollection roc = CC.Pinyins;
//获取集合中第一个数据即为该汉字的拼音
spells += roc[0].ToLower();
}
}
if (spells.Contains(selwords))
{
categorylist.Add(list[i]);
}
}
}
else
{
categorylist = new BLL.t_category().GetModelList(" ParentID!=0 and Name LIKE '%" + selwords + "%'"); ;
}
ResponseText(Newtonsoft.Json.JsonConvert.SerializeObject(new { res = 1, list = categorylist }));
}
else {
ResponseText(Newtonsoft.Json.JsonConvert.SerializeObject(new { res = 0 }));
}
}
#endregion
java 按拼音模糊搜索汉字_C#中拼音模糊匹配汉字智能搜索相关推荐
- python拼音怎么写-Python 中拼音库 PyPinyin 的用法
[摘要] 最近碰到了一个问题,项目中很多文件都是接手过来的中文命名的一些素材,结果在部署的时候文件名全都乱码了,导致项目无法正常运行. 后来请教了一位大佬怎么解决文件名乱码的问题,他说这个需要正面解决 ...
- Python中实现模糊匹配的魔法库:FuzzyWuzzy
参考链接:https://mp.weixin.qq.com/s/5qzPb7HOCfRRGJICYUsAOQ FuzzyWuzzy一个简单易用的模糊字符串匹配工具包.让你轻松解决烦恼的匹配问题! 前言 ...
- java有没有友元函数_c++中友元函数理解与使用
在学习c++这一块,关于友元函数和友元类,感觉还是不好理解,但是井下心来,理解,需要把我一下几点. 首先讲友元函数. (1)友元函数: 1)C++中引入友元函数,是为在该类中提供一个对外(除了他自己意 ...
- c++ 模糊搜索 正则表达式_c++中正则表达式(regex)
http://www.codeceo.com/article/cpp11-regex-code.html regex库概览 1.basic_regex:正则表达式是一个通用的模板 typedef ba ...
- java 快排非递归_C++ 中快排的递归和非递归实现
快排的递归 void quickSort1(int* root,int low,int high) { int pat=root[low]; if(low { int i=low,j=high; wh ...
- SQL查询中的模糊匹配
匹配字符串中可包含如下四种通配符: _:匹配任意一个字符: %:匹配0个或多个字符: [ ]:匹配[ ]中的任意一个字符(若要比较的字符是连续的,则可以用连字符"-"表 达 ): ...
- Postgresql杂谈 22——Postgresql中的模糊匹配
Postgresql对模糊查询的支持,主要有三种方法:传统的like操作符.SQL99新增的SIMILAR TO操作符以及POSIX正则表达式.除了前面两种SQL标准的模糊查询手段,Postgresq ...
- React中的模糊匹配与精准匹配
路由的严格匹配与模糊匹配 1.默认使用的是模糊匹配(简单记:[输入的路径]必须包含要[匹配的路径],且顺序要一致)2.开启严格匹配:<Route exact={true} path=" ...
- es不建议模糊搜索_工作中的Elasticsearch-模糊检索
[简介] ElasticSearch是一个基于Lucene的搜索服务器.实时分布式搜索和分析引擎.让你以前所未有的速度处理大数据成为可能.使用Java开发并使用Lucene作为其核心来实现所有索引和搜 ...
- 原 python实现模糊匹配_使用python中的fuzzywuzzy库进行模糊匹配实例
fuzzywuzzy库是Python中的模糊匹配库,它依据 Levenshtein Distance 算法 计算两个序列之间的差异. Levenshtein Distance 算法,又叫 Edit D ...
最新文章
- UITextView左边距为0
- JavaScript 技术篇 - js在一个元素节点下包含多个text文本情况下的指定文本提取方法
- Java设计模式理论知识要点总结
- excel二极管伏安特性曲线_晶体二极管的识别与检测方法图解
- 阿里云服务器Svn-Server无法连接,阿里云服务器SVNServer配置
- HDU4372(第一类斯特林数)
- 博弈-sg函数的原理和优化(hdu-1536)
- 第一百五十期:Java程序员必备:异常的十个关键知识点
- python-类的定制
- php输出excel表格乱码和第一个0不显示的解决方法(详细)
- word文本框跨页显示方法
- matlab转换为exe文件,MATLAB文件转为exe可执行文件(package使用)
- 安卓虚拟键盘_微软双屏Surface Duo上的安卓应用体验:可瞬间变身笔记本电脑
- 高精度算法 万字详解(C++)
- k380没有验证码_罗技K380蓝牙键盘
- 微信公众号发送模版消息 Java实现
- win10到优麒麟到深度系统
- 复制网页文本的几种方法
- git fork 什么意思
- 如何破解linux密码