详解java 拼音首字母搜索内容功能的示例
序
一款成熟的产品,首页的搜索功能除了正常的关键词匹配以外;还要考虑到用户忘记输入汉字或者用户想通过关键字首字母来进行搜索的操作。
这不,阿淼公司最近在做游戏盒子,其中包含很多游戏,有个需求就是要用户可以根据游戏名称首字母搜索游戏,如搜索zwdzjs可以搜索出来植物大战僵尸等;输入hzw可以搜索出来海贼王等。
功能如何实现?接下来阿淼就直接带大家实操。
1、导入依赖包
com.belerweb pinyin4j 2.5.1
2、实现拼音工具类
2.1、根据汉字获取全拼
public String getPingYin(String src) { char[] t1 = null; t1 = src.toCharArray(); String[] t2 = new String[t1.length]; HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat(); //设置拼音大小写 LOWERCASE(小写) UPPERCASE(大写) t3.setCaseType(HanyuPinyinCaseType.LOWERCASE); //设置声调 t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE); t3.setVCharType(HanyuPinyinVCharType.WITH_V); String t4 = ""; int t0 = t1.length; try { for (int i = 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]); } } return t4; } catch (BadHanyuPinyinOutputFormatCombination e1) { e1.printStackTrace(); } return t4; }
2.2、根据汉字获取首字母
public String getPinYinHeadChar(String str) { String convert = ""; for (int j = 0; j < str.length(); j++) { char word = str.charAt(j); String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word); if (pinyinArray != null) { convert += pinyinArray[0].charAt(0); } else { convert += word; } } return convert; }
3、测试
测试代码:
public static void main(String[] args) { PinYinUtil pinYinUtil = new PinYinUtil(); String str = "植物大战僵尸"; String quanpin=pinYinUtil.getPingYin(str); String head=pinYinUtil.getPinYinHeadChar(str); System.out.println("中文名称:"+str); System.out.println("全拼:"+quanpin); System.out.println("首字母:"+head); }
测试结果:
中文名称:植物大战僵尸
全拼:zhiwudazhanjiangshi
首字母:zwdzjs
到此这篇关于详解java拼音首字母搜索内容功能的示例的文章就介绍到这了,更多相关java拼音首字母搜索内容内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。