`
peonyzzdx
  • 浏览: 590868 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

只输入姓名的首字母或者全拼实现快速检索的功能

阅读更多
新增入一条数据时,在数据库中存入姓名的首字母拼写或者全拼,搜索时直接搜索这个字段即可。如下姓名美丽,在数据库中存入ml或者meili,则搜索时只需要输入ml或者meili就可以查到姓名为“美丽”这条信息。


那么如何把姓名的首字母拼写或者全拼存入数据库呢?


private void autoFillChinesePinyin(OverseaPersonnel overseaPersonnel){
if(overseaPersonnel.getName()!=null){
Map<String,String> map = Chinese2pinyin.changeChinese2Pinyin(overseaPersonnel.getName());
overseaPersonnel.setSimplePinyin(map.get("simplePinyin"));
overseaPersonnel.setFullPinyin(map.get("fullPinyin"));
}
}


需要jar包:pinyin4j-2.5.0.jar,见附件。

Chinese2pinyin.java

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

public static Map<String, String> changeChinese2Pinyin(String chinese) {
Map<String, String> pinyin = new HashMap<String, String>();

HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
format.setVCharType(HanyuPinyinVCharType.WITH_V);

StringBuffer fullPinyin = new StringBuffer();
StringBuffer simplePinyin = new StringBuffer();
char[] chineseChar = chinese.toCharArray();
for (int i = 0; i < chineseChar.length; i++) {
String[] str = null; 
try {
str = PinyinHelper.toHanyuPinyinStringArray(chineseChar[i],
format);
} catch (BadHanyuPinyinOutputFormatCombination e) {
logger.error("异常信息", e);
}
if (str != null) {
fullPinyin = fullPinyin.append(str[0].toString());
simplePinyin = simplePinyin.append(str[0].charAt(0));
}
if (str == null) {
String regex = "^[0-9]*[a-zA-Z]*+$";
Pattern pattern = Pattern.compile(regex);
Matcher m = pattern.matcher(String.valueOf(chineseChar[i]));
if (m.find()) {
fullPinyin = fullPinyin.append(chineseChar[i]);
simplePinyin = simplePinyin.append(chineseChar[i]);
}
}
}
pinyin.put("fullPinyin", fullPinyin.toString());
pinyin.put("simplePinyin", simplePinyin.toString());

return pinyin;
}



  • 大小: 17.3 KB
0
7
分享到:
评论

相关推荐

    winform下拉框输入汉字首字母快速检索所需项

    此程序是c# winform 开发的下拉框选择功能,可以通过输入各选项汉字的首字母快速检索所需项,当然,里面其中最大的功能是汉字转拼音功能(汉字全拼/汉字首字母等功能)。由于刚好一个老系统在用vs2003,所以,索性就...

    中文 拼音首字母 全拼 匹配城市名

    例如,在输入法中,用户只需输入城市名的拼音首字母,系统就能快速列出可能的城市选项。这极大地提高了输入效率,尤其在需要快速查找或输入大量城市名时。全拼则提供更精确的匹配,因为每个汉字都有其独特的全拼,...

    IOS通讯录T9键盘全拼、首字母搜索实现

    在iOS开发中,实现通讯录的T9键盘全拼及首字母搜索功能是一项常见的需求,它极大地提高了用户在大量联系人中查找特定联系人的效率。T9键盘源于早期的手机设计,通过数字键来输入字母,通过组合数字键实现全拼输入。...

    由汉字得到拼音以便输入某个汉字的首字母,查询某条记录,功能类似于电话本

    这与手机电话本的查找功能类似,用户只需要输入联系人姓名的首字母,系统就会筛选出匹配的联系人列表。 在标签中,“vc”通常指的是Visual C++,这是一个由微软开发的集成开发环境,用于编写使用C++语言的应用程序...

    Android选择城市Demo,可根据拼音、首字母搜索

    6. **首字母处理**: 对于中文姓名或城市名,通常需要提取首字母进行快速查找。这涉及到对汉字拼音首字母的处理,比如Jian4(简)的首字母是"J"。这个过程可能包括对全拼进行处理,得到每个汉字的首字母,然后进行...

    C# 开发的通讯录 简洁易用 首字母自动识别功能

    该软件巧妙地利用了中文姓名的拼音首字母特性,用户只需输入联系人姓名的首字母、连续首字母或者完整的拼音缩写,如"l"、"lx"或"lxm",就能迅速定位到"李小明"这一联系人,极大地提升了搜索的便捷性与精准度。...

    支持拼音、代码、中文快速检索的字典demo

    在这个“字典demo”中,考虑到中文字符的特点,可能会采用拼音首字母索引法或者全拼检索,这能大大减少查找时间。同时,对于代码检索,可能涉及到特定编码规则的理解和解析,例如,代码可能是特定库或API的标识符。 ...

    取字 每个汉字的拼音首字母

    3. **输入法优化**:现代中文输入法往往支持全拼和简拼输入,其中简拼就是只输入汉字拼音的首字母,这依赖于能够准确识别每个汉字的拼音首字母。 4. **中文信息检索**:在搜索引擎或数据库中,将汉字转换为拼音首...

    SQL 拼音首字母

    SQL Server 本身并不支持直接获取汉字的拼音首字母功能,因此开发者通常会采用自定义函数的方式来实现这一需求。 #### 二、自定义函数`fun_getPY`详解 本节将详细介绍如何在SQL Server中创建一个自定义函数`fun_...

    支持拼音检索的WEB查询系统的研究与实现

    要实现拼音检索功能,首先需要建立一个汉字与拼音之间的对照表。通常,这个对照表可以通过操作系统自带的输入法生成器将微软全拼的码表文件转换而来。码表文件包含了近56000行内容,每行由汉字及其对应的全拼音组成...

    易语言取汉字首字母源码.7z

    在“易语言取汉字首字母源码”这个压缩包中,包含的是一段实现将汉字转化为首字母的源代码。这种功能在许多应用场景中都很常见,比如姓名的拼音缩写、关键词检索等。 在易语言中,处理汉字和字符编码是一项基础任务...

    易语言首拼音取项目

    2. **首字母提取**:将得到的全拼转换为首字母。对于英文字符,直接取首字母即可;对于中文字符,需要将其转换为拼音后再取首字母。 3. **处理特殊情况**:有些汉字没有对应的拼音,或者某些拼音不存在首字母(如...

    利用pinyin.jar做的联系人索引

    用户可以通过输入拼音首字母来快速定位到相应的联系人。 6. 用户界面:虽然描述中没有提到,但一个完整的应用可能会有一个友好的用户界面,允许用户输入查询条件并显示搜索结果。 通过这样的索引系统,用户可以...

    SqlServer函数取汉字拼首

    标题中的"SqlServer函数取汉字拼首"指的是利用特定的SQL Server函数来获取汉字的首字母,这在构建全拼搜索或者进行拼音索引时非常有用。下面将详细介绍这两个函数的实现方式以及它们在实际应用中的作用。 1. **...

    助记码(可以将中文字自动转换为每个字的首拼音字母)

    首先,需要加载拼音库(如上文中的 SQL 表),然后编写一个函数来遍历输入的中文字符串,逐个查找每个汉字对应的拼音,并提取出首字母作为助记码。 4. **性能优化**:由于涉及到大量的数据查询操作,因此在设计时还...

    VBA汉字转换成全拼

    - **功能多样**:支持全拼大小写转换、首字母大写转换等多种格式。 - **高效性**:采用宏函数自动完成转换,提高了效率。 #### 四、程序原理 该程序主要通过建立一个包含汉字拼音对应表的数组来实现汉字到拼音的...

    实用汉字转拼音

    同时,为了方便处理,工具还可能支持拼音首字母的转换,这对于快速筛选和排序汉字信息非常有用。 在实际应用中,这样的工具可能被用于数据库的字段更新,比如在姓名字段中转换所有的中文为拼音,便于基于拼音进行...

    filter-by-pinyin:支持拼音的模糊匹配函数

    3. **首字母匹配**:在没有完整拼音的情况下,只使用中文字符的首字母进行匹配,这是最简单的模糊匹配方式,例如“zg”对应“中国”。 在实现过程中,我们需要考虑以下几点: - **大小写处理**:通常,用户输入的...

    elasticsearch-analysis-pinyin-7.6.1.zip

    在上述配置中,`pinyin_tokenizer`将中文字符分解为拼音,`keep_first_letter`和`keep_full_pinyin`分别控制是否保留首字母和完整拼音,`remove_duplicated_term`则用于去除重复的术语,提高索引效率。 总的来说,...

    ChineseCharToEn

    本篇文章将深入探讨如何利用Java编程语言来实现一个名为“ChineseCharToEn”的程序,该程序能够将汉字姓名转化为拼音首字母,如将“黄镇”转化为“hz”。这一功能在许多实际应用中非常实用,例如用户注册、搜索优化...

Global site tag (gtag.js) - Google Analytics