這篇文章主要講解了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中拼音首字母搜索內容功能的實現方法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。