详解java 拼音首字母搜索内容功能的示例
时间:2020-10-01 15:47:33|栏目:JAVA代码|点击: 次
序
一款成熟的产品,首页的搜索功能除了正常的关键词匹配以外;还要考虑到用户忘记输入汉字或者用户想通过关键字首字母来进行搜索的操作。
这不,阿淼公司最近在做游戏盒子,其中包含很多游戏,有个需求就是要用户可以根据游戏名称首字母搜索游戏,如搜索 zwdzjs 可以搜索出来植物大战僵尸等;输入 hzw 可以搜索出来海贼王等。
功能如何实现?接下来阿淼就直接带大家实操。
1、导入依赖包
<dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.1</version> </dependency>
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代码
下一篇:浅析JavaWeb项目架构之Redis分布式日志队列
本文地址:http://www.codeinn.net/misctech/5780.html
阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机