1. 程式人生 > >Java漢字轉拼音pinyin4j用法

Java漢字轉拼音pinyin4j用法

漢字轉換拼音在日常開發中是個很常見的問題。例如我們偉大的12306,在地名中輸入“WH”,就會出現“武漢”“蕪湖”“威海”等地名,輸入“WUHU”就會出現“蕪湖”。

Java獲取漢字的拼音,pinyin4j這個庫可以很好的解決這個問題。

下載解壓,裡面有個pinyin4j-2.5.0.jar,使用這個庫即可。

漢字轉拼音:

String[] pinyin = PinyinHelper.toHanyuPinyinStringArray('重');

上面這行程式碼就是單個漢字轉拼音了,例如“重”字,該方法返回一個String型別的陣列

"zhong4"

"chong2"

“重”是一個多音字,該方法的返回陣列包含這個字的所有讀音

的拼音。每個讀音最後有個數字就是音調(第一聲 第二聲 第三聲 第四聲,這個不用解釋了)。

上面是最簡單的一種獲取單個漢字的方式,還可以使用HanyuPinyinOutputFormat來格式化返回拼音的格式。

HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); 

// UPPERCASE:大寫  (ZHONG)
// LOWERCASE:小寫  (zhong)
format.setCaseType(HanyuPinyinCaseType.LOWERCASE);

// WITHOUT_TONE:無音標  (zhong)
// WITH_TONE_NUMBER:1-4數字表示英標  (zhong4)
// WITH_TONE_MARK:直接用音標符(必須WITH_U_UNICODE否則異常)  (zhòng)
format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);

// WITH_V:用v表示ü  (nv)
// WITH_U_AND_COLON:用"u:"表示ü  (nu:)
// WITH_U_UNICODE:直接用ü (nü)
format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
		
String[] pinyin = PinyinHelper.toHanyuPinyinStringArray('重', format);

toHanyuPinyinStringArray如果傳入的字元不是漢字不能轉換成拼音,那麼會直接返回null

雖然pinyin4j很好用,但是還是有侷限的。以上程式碼只能獲取單個漢字的拼音,但是不能獲取一個包含多音字的詞的拼音。例如“重慶”,無法判斷到底是“chongqing”還是“zhongqing”,pinyin4j不能通過上下文來判斷多音字的讀音。

所以,在獲取一個包含多音字的詞語的讀音,可以返回一個列表,正確的讀音只能是人工判斷選擇。


相關推薦

Java漢字拼音pinyin4j用法

漢字轉換拼音在日常開發中是個很常見的問題。例如我們偉大的12306,在地名中輸入“WH”,就會出現“武漢”“蕪湖”“威海”等地名,輸入“WUHU”就會出現“蕪湖”。 Java獲取漢字的拼音,pinyin4j這個庫可以很好的解決這個問題。 下載解壓,裡面有個pinyin4

Java基礎知識:Java漢字拼音pinyin4j用法

漢字轉換拼音在日常開發中是個很常見的問題。例如我們偉大的12306,在地名中輸入“WH”,就會出現“武漢”“蕪湖”“威海”等地名,輸入“WUHU”就會出現“蕪湖”。   Java獲取漢字的拼音,pinyin4j這個庫可以很好的解決這個問題。   下載解壓,裡面有個pinyi

java漢字拼音或效驗漢字是否存在(過濾)

# 漢字控制 ## 漢字轉拼音 引入jar:pinyin4j.jar import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPiny

java漢字拼音

pinyin-4j demo public class HanzhiToPinyinUtil{ /** * 獲得漢語拼音首字母 * * @param chines 漢字 * @return */ public static

Java漢字拼音工具類

 Java漢字轉拼音的類。使用pinyin4j實現 package com.pinyin4j; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.Ha

java 漢字拼音(解決多音字問題)

上一篇文章 Java 漢字轉拼音 介紹了Java 中利用Pinyin4j 實現漢字轉拼音,但是對於多音字問題採取的是組合拼音方式,例如長沙 取拼音結果就是 changsha zhangsha。某些情況下我們希望能得到多音字的唯一拼音,此時就需要藉助多音字字典了,原理很

java 漢字拼音

1.pom檔案 <!-- https://mvnrepository.com/artifact/com.belerweb/pinyin4j --> <dependency> <groupId>com.belerweb</gr

pinyin4j漢字拼音

 使用前可以在maven專案中引入依賴即可以呼叫下方pinyin4jUtils類來使用: <!-- https://mvnrepository.com/artifact/org.clojars.cbilson/pinyin4j -->         <de

Java/Android中漢字拼音的兩種方法,優劣比較

一、前言 在我們的開發中,有時會有這樣的需求,就是聯絡人列表按照拼音順序排列(如通訊錄)。於是,我也在網上搜到了許多這類的文章,就兩種最常見的做法在此進行簡單的比較和分析 二、漢字轉拼音的方法 使用第三方pinyin4j的jar包。 下載地址  , Android St

java實現漢字拼音

轉載請註明出處:http://blog.csdn.net/xiaojimanman/article/details/48579073 個人部落格站已經上線了,網址 www.llwjy.com ~歡迎各位吐槽~---------------------------------

JAVA 生成同音字的方法,隨機生成漢字,漢字拼音,寫的不好,望指正.謝謝~

好啦,我知道我寫的不咋....希望有更好方法的人可以告訴我~ import java.io.UnsupportedEncodingException; import java.util.Random; import net.sourceforge.pinyin4j.Piny

java根據漢字拼音,多音字人工處理,資料庫表字段型別為nvarchar,其它要亂碼

package com.zsjz.utils.tools; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; i

簡單測試--C#實現中文漢字拼音首字母

esp chart htm foreach ext ads linq 類庫 play 第一種: 這個是自己寫的比較簡單的實現方法,要做漢字轉拼音首字母,首先應該有一個存儲首字母的數組,然後將要轉拼音碼的漢字與每個首字母開頭的第一個漢字即“最小”的漢字作比較,這裏的最小指的是

漢字拼音

col [] 沒有 行為 pin bin -1 風險 static 使用的庫: pinyin4j 鏈接:http://pan.baidu.com/s/1gf23Nkn 密碼:b4sf 使用pinyin4j獲取漢字的簡拼/全拼示例: 1 package prinyin

asp.net 漢字拼音的車禍現場

png trim 漢語拼音 集中 其中 現場 version nap 類文件 asp.net 漢字轉拼音 需求背景: 昨天遇到個問題,就是面對系統中集中性的要設置大批量的用戶設置默認的用戶名,密碼,權限(角色),同時要求用戶名是姓名的全拼,回頭看看旁邊那個

oracle漢字拼音(獲得全拼/拼音首字母/拼音截取等)

sub 截取 需要 sel 內容 zip bsp .com 整理 oracle漢字轉拼音(獲得全拼/拼音首字母/拼音截取等) 效果如下: Oracle 字符集 GBK 沒有問題 , UTF -8 需要修改一下Sql代碼 --oracle漢字轉拼音 PACKAGE --1

Python 漢字拼音

技術 PE fir for str IT 代碼 @param cep 本文參考: Python中文轉拼音代碼(支持全拼和首字母縮寫) 中文中不可以有“()” # -*- coding: utf-8 -*- __version__ = ‘0.9‘ __all__ = ["

楊澤業:讓你的網站無限可能之給你的網站增加漢字拼音的新功能

上傳 class 體驗 很多 microsoft eight col tps 拼音 一個網站可以無限可能,你的網站可以成就你的事業! 這不是一句空話,而是一個可行的方案。 今天澤業建站網站長楊澤業來給大家講解一下最簡單的網站功能的增加。 現在增加的是【漢字轉拼音】的新功能為

C#之使用StringHelper來處理漢字拼音

ase blog true 符號 arr mes rep mode dede StringHelper字符串處理幫助 現在已經實現的功能有: 1.用給定的字符填充源字符串的左邊以達到指定的長度 2.用給定的字符填充源字符串的右邊以達到指定的長度 3.轉半角的函數(DBC c

Python之漢字拼音

 1.安裝pypinyin pip install pypinyin  2.具體程式碼如下 from pypinyin import pinyin,Style # # singer_dict = { # # "first": [{"name":