java中文轉拼音
阿新 • • 發佈:2020-11-30
簡介
在我們使用手機通訊錄或各種APP的搜尋功能時,既可以根據中文搜尋,也可以根據拼音搜尋,這種時候就使用到了中文轉拼音的功能了。
實現
pinyin4j
引入maven依賴
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
</dependency>
例項
public class Client { public static void main(String[] args) throws BadHanyuPinyinOutputFormatCombination { HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); //拼音小寫 format.setCaseType(HanyuPinyinCaseType.LOWERCASE); //不帶聲調 format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); //要轉換的中文,格式,轉換之後的拼音的分隔符,遇到不能轉換的是否保留 wo,shi,zhong,guo,ren,,hello System.out.println(PinyinHelper.toHanYuPinyinString("我是中國人,hello", format, ",", true)); } }
輸出結果為
wo,shi,zhong,guo,ren,,hello
可以看到使用開源工具包實現中文轉拼音還是很簡單的。
其實就是將所有中文和對應的拼音儲存起來並載入到記憶體中,轉換時直接查詢。
jpinyin
引入maven依賴
<dependency>
<groupId>com.github.stuxuhai</groupId>
<artifactId>jpinyin</artifactId>
<version>1.1.8</version>
</dependency>
例項
public class Client { public static void main(String[] args) throws PinyinException { //要轉換的中文,轉換之後的拼音分隔符,拼音格式帶聲調 wǒshìzhōngguórén,hello System.out.println( PinyinHelper.convertToPinyinString("我是中國人,hello", "", PinyinFormat.WITH_TONE_MARK)); } }
原理也是提前儲存轉換關係直接查詢。