详解java 拼音首字母搜索内容功能的示例

时间:2021-05-19

一款成熟的产品,首页的搜索功能除了正常的关键词匹配以外;还要考虑到用户忘记输入汉字或者用户想通过关键字首字母来进行搜索的操作。

这不,阿淼公司最近在做游戏盒子,其中包含很多游戏,有个需求就是要用户可以根据游戏名称首字母搜索游戏,如搜索 zwdzjs 可以搜索出来植物大战僵尸等;输入 hzw 可以搜索出来海贼王等。

功能如何实现?接下来阿淼就直接带大家实操。

1、导入依赖包

<dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.1</version> </dependency>

2、实现拼音工具类

2.1、根据汉字获取全拼

publicStringgetPingYin(Stringsrc){char[]t1=null;t1=src.toCharArray();String[]t2=newString[t1.length];HanyuPinyinOutputFormatt3=newHanyuPinyinOutputFormat();//设置拼音大小写LOWERCASE(小写)UPPERCASE(大写)t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);//设置声调t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);t3.setVCharType(HanyuPinyinVCharType.WITH_V);Stringt4="";intt0=t1.length;try{for(inti=0;i<t0;i++){//判断是否为汉字字符if(java.lang.Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")){t2=PinyinHelper.toHanyuPinyinStringArray(t1[i],t3);t4+=t2[0];}else{t4+=java.lang.Character.toString(t1[i]);}}returnt4;}catch(BadHanyuPinyinOutputFormatCombinatione1){e1.printStackTrace();}returnt4;}

2.2、根据汉字获取首字母

publicStringgetPinYinHeadChar(Stringstr){ Stringconvert="";for(intj=0;j<str.length();j++){charword=str.charAt(j);String[]pinyinArray=PinyinHelper.toHanyuPinyinStringArray(word);if(pinyinArray!=null){convert+=pinyinArray[0].charAt(0);}else{convert+=word;}}returnconvert;}

3、测试

测试代码:

publicstaticvoidmain(String[]args){PinYinUtilpinYinUtil=newPinYinUtil();Stringstr="植物大战僵尸";Stringquanpin=pinYinUtil.getPingYin(str);Stringhead=pinYinUtil.getPinYinHeadChar(str);System.out.println("中文名称:"+str);System.out.println("全拼:"+quanpin);System.out.println("首字母:"+head);}

测试结果:

中文名称:植物大战僵尸
全拼:zhiwudazhanjiangshi
首字母:zwdzjs

到此这篇关于详解java 拼音首字母搜索内容功能的示例的文章就介绍到这了,更多相关java 拼音首字母搜索内容内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章