- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > 編程語(yǔ)言 >
- Java實(shí)戰之城市多音字處理
對城市名稱(chēng)轉化為拼音的時(shí)候,當遇到多音字城市的時(shí)候,轉化拼音就不是我們想要的了。
使用 pinyin4j 無(wú)法直接解決這個(gè)問(wèn)題。 。網(wǎng)上有很多維護多音字信息的,覺(jué)得麻煩。
如:
長(cháng)沙 ====>"zhangsha" 廈門(mén)===>"shamen" 重慶===>"zhongqing"
版本自選
<!-- https://mvnrepository.com/artifact/com.github.stuxuhai/jpinyin --> <dependency> <groupId>com.github.stuxuhai</groupId> <artifactId>jpinyin</artifactId> <version>1.1.8</version> </dependency>
import com.github.stuxuhai.jpinyin.ChineseHelper; import com.github.stuxuhai.jpinyin.PinyinFormat; import com.github.stuxuhai.jpinyin.PinyinHelper; /** * @Description: * @Date: 2021/4/27 16:26 * @Author: luch * @Version: 1.0 **/ public class ChangeToPinYinJPinYin { /** * 轉換為有聲調的拼音字符串 * * @param pinYinStr 漢字 * @return 有聲調的拼音字符串 */ public static String changeToMarkPinYin(String pinYinStr) { String tempStr = null; try { tempStr = PinyinHelper.convertToPinyinString(pinYinStr, " ", PinyinFormat.WITH_TONE_MARK); } catch (Exception e) { e.printStackTrace(); } return tempStr; } /** * 轉換為數字聲調字符串 * * @param pinYinStr 需轉換的漢字 * @return 轉換完成的拼音字符串 */ public static String changeToNumberPinYin(String pinYinStr) { String tempStr = null; try { tempStr = PinyinHelper.convertToPinyinString(pinYinStr, " ", PinyinFormat.WITH_TONE_NUMBER); } catch (Exception e) { e.printStackTrace(); } return tempStr; } /** * 轉換為不帶音調的拼音字符串 * * @param pinYinStr 需轉換的漢字 * @return 拼音字符串 */ public static String changeToTonePinYin(String pinYinStr) { String tempStr = null; try { tempStr = PinyinHelper.convertToPinyinString(pinYinStr, "", PinyinFormat.WITHOUT_TONE); } catch (Exception e) { e.printStackTrace(); } return tempStr; } /** * 轉換為每個(gè)漢字對應拼音首字母字符串 * * @param pinYinStr 需轉換的漢字 * @return 拼音字符串 */ public static String changeToGetShortPinYin(String pinYinStr) { String tempStr = null; try { tempStr = PinyinHelper.getShortPinyin(pinYinStr); } catch (Exception e) { e.printStackTrace(); } return tempStr; } /** * 檢查漢字是否為多音字 * * @param pinYinStr 需檢查的漢字 * @return true 多音字,false 不是多音字 */ public static boolean checkPinYin(char pinYinStr) { boolean check = false; try { check = PinyinHelper.hasMultiPinyin(pinYinStr); } catch (Exception e) { e.printStackTrace(); } return check; } /** * 簡(jiǎn)體轉換為繁體 * * @param pinYinStr * @return */ public static String changeToTraditional(String pinYinStr) { String tempStr = null; try { tempStr = ChineseHelper.convertToTraditionalChinese(pinYinStr); } catch (Exception e) { e.printStackTrace(); } return tempStr; } /** * 繁體轉換為簡(jiǎn)體 * * @param pinYinSt * @return */ public static String changeToSimplified(String pinYinSt) { String tempStr = null; try { tempStr = ChineseHelper.convertToSimplifiedChinese(pinYinSt); } catch (Exception e) { e.printStackTrace(); } return tempStr; } }
public static void main(String[] args) { String str = "長(cháng)沙市"; System.out.println("轉換為有聲調的拼音字符串:"+changeToMarkPinYin(str)); System.out.println("轉換為不帶音調的拼音字符串:"+changeToTonePinYin(str)); String strFanTi="誰(shuí)是程序員"; System.out.println("繁體轉換為簡(jiǎn)體:"+changeToSimplified(strFanTi)); System.out.println("重"+"重是否是多音字:"+checkPinYin('重')); System.out.println("廈"+"是否是多音字:"+checkPinYin('廈')); System.out.println("鼠"+"是否是多音字:"+checkPinYin('鼠')); }
輸出結果,下面不同字的中間是否有空格,這個(gè)可以自己設置的
分別是:從上到下分別是
1.繁體-簡(jiǎn)體對應表
2.多音字
3.帶音標的拼音
點(diǎn)開(kāi)
com.github.stuxuhai.jpinyin.PinyinResource#getPinyinResource
有三個(gè)方法分別加載了這幾個(gè)資源
然后通過(guò)
com.github.stuxuhai.jpinyin.ChineseHelper
通過(guò)一個(gè)鍵值對獲取。加載處理而已。
到此這篇關(guān)于Java實(shí)戰之城市多音字處理的文章就介紹到這了,更多相關(guān)java城市多音字處理內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站