java多音字首字母排序
2019獨角獸企業重金招聘Python工程師標準>>>
import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger;
import com.google.common.collect.ArrayListMultimap;
import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; import net.sourceforge.pinyin4j.format.HanyuPinyinToneType; import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType; import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; /**
-
@Description
-
@lastModified
-
@history */ public class Py4j { private ArrayListMultimap<String, String> duoYinZiMap;
/**
- 獲取日志信息 */ private Logger logger = Logger.getLogger(Py4j.class); public Py4j() { Py4jDictionary.getDefault().init(); duoYinZiMap = Py4jDictionary.getDefault().getDuoYinZiMap(); }
public String[] getPinyin(char ch) { try { HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat(); outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); outputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); outputFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
if (ch >= 32 && ch <= 125) { // ASCII >=33 ASCII<=125的直接返回// ,ASCII碼表:http://www.asciitable.com/return new String[]{String.valueOf(ch)};}return PinyinHelper.toHanyuPinyinStringArray(ch, outputFormat);} catch (BadHanyuPinyinOutputFormatCombination e) {logger.error("獲取漢語拼音時異常:" + e.getMessage());}return null;}
public String getPinyin(String chinese) { try { if (StringUtils.isEmpty(chinese)) { return ""; } chinese = chinese.replaceAll( "[\.,\,!·\!?\?;\;\(\)()\[\]\::\-\_ ]+", " ") .trim();
StringBuilder py_sb = new StringBuilder();char[] chs = chinese.toCharArray();for (int i = 0; i < chs.length; i++) {String[] py_arr = getPinyin(chs[i]);if (py_arr == null || py_arr.length < 1) {continue;}if (py_arr.length == 1) {py_sb.append(convertInitialToUpperCase(py_arr[0]));} else if (py_arr.length == 2 && py_arr[0].equals(py_arr[1])) {py_sb.append(convertInitialToUpperCase(py_arr[0]));} else {String resultPy = null, defaultPy = null;;for (String py : py_arr) {String left = null; // 向左多取一個字,例如 銀[行]if (i >= 1 && i + 1 <= chinese.length()) {left = chinese.substring(i - 1, i + 1);if (duoYinZiMap.containsKey(py)&& duoYinZiMap.get(py).contains(left)) {resultPy = py;break;}}String right = null; // 向右多取一個字,例如 [長]沙if (i <= chinese.length() - 2) {right = chinese.substring(i, i + 2);if (duoYinZiMap.containsKey(py)&& duoYinZiMap.get(py).contains(right)) {resultPy = py;break;}}String middle = null; // 左右各多取一個字,例如 龍[爪]槐if (i >= 1 && i + 2 <= chinese.length()) {middle = chinese.substring(i - 1, i + 2);if (duoYinZiMap.containsKey(py)&& duoYinZiMap.get(py).contains(middle)) {resultPy = py;break;}}String left3 = null; // 向左多取2個字,如 羋月[傳],列車長if (i >= 2 && i + 1 <= chinese.length()) {left3 = chinese.substring(i - 2, i + 1);if (duoYinZiMap.containsKey(py)&& duoYinZiMap.get(py).contains(left3)) {resultPy = py;break;}}String right3 = null; // 向右多取2個字,如 [長]孫無忌if (i <= chinese.length() - 3) {right3 = chinese.substring(i, i + 3);if (duoYinZiMap.containsKey(py)&& duoYinZiMap.get(py).contains(right3)) {resultPy = py;break;}}if (duoYinZiMap.containsKey(py)&& duoYinZiMap.get(py).contains(String.valueOf(chs[i]))) { // 默認拼音defaultPy = py;}}if (StringUtils.isEmpty(resultPy)) {if (StringUtils.isNotEmpty(defaultPy)) {resultPy = defaultPy;} else {resultPy = py_arr[0];}}py_sb.append(convertInitialToUpperCase(resultPy));}}return py_sb.toString();} catch (Exception e) {logger.error("文字轉拼音時異常:" + e.getMessage());}return "";}
/**
- @Description 首字母轉大寫
- @param str
- @return */ private String convertInitialToUpperCase(String str) { if (str == null || str.length() == 0) { return ""; } return str.substring(0, 1).toUpperCase() + str.substring(1); }
public static void main(String[] args) { final String[] arr = {"肯德基*【】", "重慶銀行"};
for (String chinese : arr) {Py4j py4j = new Py4j();String py = py4j.getPinyin(chinese);System.out.println(chinese + "\t" + py);}} }
py4j.dic文件: a#阿
ao#拗口/違拗/拗斷/執拗/拗口/拗口風/拗口令/拗曲/拗性/拗折/警拗
ai#艾
bang#膀/磅/蚌
ba#扒
bai#叔伯/百/柏楊/?/梵唄/唄佛/唄音/唄唱/唄偈/唄聲/唄贊/贊唄
bao#剝皮/薄/暴/堡/曝
bei#唄
beng#蚌埠
bi#復辟/臂/秘魯/泌陽
bing#屏息/屏棄/屏氣/屏除/屏聲
bian#扁/便/便宜坊
bo#薄荷/單薄/伯/泊/波/柏/蘿卜/孛
bu#卜/柨
can#參
cang#藏/欌
cen#參差
ceng#曾/噌
cha#差/剎那/寶剎/一剎/查/碴/喳喳/喀喳
chai#公差/差役/專差/官差/聽差/美差/辦差/差事/差使/肥差/當差/欽差/苦差/出差
chan#顫/單于/禪
chang#長/廠
chao#朝/嘲/焯
che#工尺/車
chen#稱職/勻稱/稱心/相稱/對稱
cheng#稱/乘/澄/噌吰/橙 秤/盛滿/盛器/盛飯
chu#畜
chui#椎心
chuai#揣
chuan#傳
chi#匙/尺/吃
chong#重慶/重重/蟲
chou#臭/幬
chuang#經幢
chuo#綽
ci#參差/鱗差/伺候/龜茲
cuan#攢聚/攢動/攢集/攢宮/攢所
cuo#撮兒/撮要/撮合
da#大/嗒
dao#叨/幬載/幬察
dai#大夫
dan#單/彈/撣/澹
dang#鐺
de#的/得
di#堤/底/怎的/有的/目的/標的/打的/的確/有的放/的盧/矢之的/言中的/語中的/的士/地/提防/快的/美的
diao#藍調/調調/音調/論調/格調/調令/低調/筆調/基調/強調/聲調/濫調/老調/色調/單調/腔調/跑調/曲調/步調/語調/主調/情調
ding#丁
du#讀/都/度
dou#全都/句讀
duo#舵/測度/忖度/揣度/猜度
dun#糧囤/盾/頓/沌/敦
e#阿諛/阿膠/阿彌/惡/擜
er#兒
fan#番
feng#馮
fei#婔
fo#佛
fu#仿佛/果脯/罘/莩
fou#否
fiao#覅
ga#咖喱/伽馬/嘎/戛納
gai#蓋
gao#告
gang#扛鼎
ge#革/蛤蚧/文蛤/蛤蜊/咯
gei#給
geng#脖頸
gong#女紅/共
gu#谷/中鵠/鼓
gui#龜/柜/硅/倭傀/傀異/傀然/傀壘/傀怪/傀卓/傀奇/傀偉/傀民/傀俄/琦傀/奇傀
gua#呱
guan#綸巾/東莞
guang#廣
ha#蛤/哈/蝦蟆
hai#還/嗨/咳聲/咳笑
hao#貉子/貉絨
hang#夯/總行/分行/支行/行業/排行/行情/央行/商行/外行/銀行/中行/交行/招行/農行/工行/建行/商行/酒行/麻行/琴行/行業/同行/行列/行貨/行會/行家/巷道/引吭/扼吭/批吭/搤吭/高吭/喉吭/咔吭/絶吭/吭嗌/吭咽/吭首
he#和/合/核/鶴/猲
heng#道行/涥
hu#鵠/水滸/嗀/唬
hua#滑/呚/椛
huan#歸還/放還/奉還/圜
hui#會/澮河/媈/灳/噦/瑗琿
hong#紅/虹
huo#軟和/熱和/暖和
hun#尡/琿
ji#病革/給養/自給/給水/薪給/給予/供給/稽/緝/藉/奇數/亟/詰屈/薺菜/愱
jia#雪茄/伽/家/價/賈/戛
jian#見/淺淺
jiang#降
jiao#嚼舌/嚼字/嚼蠟/角/剿/餃/腳/蕉/矯/睡覺/僥/校對/校驗/校正/校準/審校/校場/校核/校勘/校訂/校閱/校樣
jie#解/慰藉/蘊藉/詰/媘/煯
jin#矜/勁/禁
jing#頸/景/強勁/勁風/勁旅/勁敵/勁射/蒼勁/遒勁/勁草
jiong#炅
ju#咀/居/桔/句/婮
jun#均
juan#棚圈/圈養/豬圈/羊圈
jue#主角/角色/旦角/女角/丑角/角力/名角/配角/嚼/覺/?
jun#龜裂/俊
ka#咖/卡/喀
kai#楷
kang#扛
ke#咳/殼
keng#吭
kuai#會計/財會/澮
kui#傀
kuo#括
la#癩痢/臘/蠟
lai#癩瘡/癩子/癩蛤/癩皮
lao#積潦/絡子/落枕/落價/粩/姥
le#樂/勒/了
lei#勒緊
lo#然咯
lou#佝僂/泄露/露面/露臉/露骨/露底/露餡/露一手/露相/露馬腳/露怯
long#里弄/弄堂/瀧
li#躒/礼/櫔/栃
liao#了解/了結/明了/了得/末了/未了/了如/潦/撩
liang#靚/倆
lie#挘
lin#崊
ling#霗/令
liu#六/遛
lu#碌/陸/露
luo#絡/落/漯/囖/洜/濼
lv#率/綠
lve#鋢/稤
lun#綸
ma#嫲/抹布/抹臉/抹桌子/摩挲
mai#埋
man#埋怨/蔓
mai#脈
mang#氓/芒
mao#冒
me#嚒
men#椚
meng#群氓/盟/癦
mei#沒/旀
mo#淹沒/沒收/出沒/沉沒/沒落/吞沒/覆沒/沒入/埋沒/鬼沒/隱沒/湮沒/辱沒/脈脈/模/摩/抹
mou#綢繆/牟
mi#秘/泌尿/分泌/謎/檷枸
mian#澠
ming#掵
miu#謬/謬論/紕繆
mu#大模/字模/模板/模樣/模具/裝模/模子/牟尼/子牟/夷牟/懸牟/相牟/頭牟/賓牟/曹牟/岑牟/兜牟/盧牟/彌牟/牟食/牟槊/牟衫/牟光/牟牟/牟甲
na#哪/娜/那
nao#臑
nan#南
ne#哪吒/呢
nei#氞
neus#莻
nong#弄/燶
ni#毛呢/花呢/呢絨/線呢/呢料/呢子/呢喃/溺/檷
niao#尿/鳥/便溺
nian#粘膜/粘度/粘土/粘合劑/粘液/粘稠/粘合/粘著/粘結/粘性/粘附/不粘鍋/粘糊/粘蟲/粘聚/粘滯/焾/哖
niang#釀
nin#脌
ning#倿/擰
niu#拗/汼
nu#努
nuo#婀娜/裊娜/喏
nv#女
nve#瘧/硸
o#喔/筽
ou#膒
pa#扒手/扒竊/扒外/扒分/扒糕/扒灰/扒犁/扒龍/扒摟/扒山虎/扒艇
pai#派/迫擊/迫擊炮
pao#刨/炮/萢
pan#番禺
pang#胖/膀/磅
pei#蓜
pi#辟/否極/臧否/龍陂/芘
pian#扁舟/便宜/魸
piao#樸姓/餓莩/饑莩/葭莩
pin#穦
ping#屏/蘋/馮河
po#湖泊/血泊 /迫/樸刀/坡/陂
pu#一曝十寒/里堡/十里堡/脯/樸/曝曬/瀑/埔
qi#期/其/泣/祇
qiu#龜茲/湭
qi#稽首/緝鞋/棲/奇/漆/齊
qia#卡脖/卡子/關卡/卡殼/哨卡/邊卡/發卡/峠
qiao#雀盲/雀子/地殼/甲殼/軀殼
qian#纖/乾/淺
qiang#強/?/?/?/?
qie#茄/趔趄/聺/籡
qin#親/沁
qing#干親/親家
qiong#熍
qu#區/趣/爠
quan#圈/券
que#雀/炔
re#聲喏/唱喏
rong#嬫
ruo#若/嵶
saeng#栍
sang#槡
sai#塞/嘥
sao#螦
se#堵塞/搪塞/茅塞/閉塞/鼻塞/梗塞/阻塞/淤塞/擁塞/哽塞/色
sha#莎/剎車/急剎/廈/杉木/杉篙
shai#色子
shao#勺/紅苕
shan#姓單/單縣/杉/敾/禪讓/受禪/禪變/禪代/禪誥
shang#衣裳
she#拾級/折本/射/蛇
shen#沙參/野參/參王/人參/紅參/丹參/山參/海參/鹿參/什么/身/沈/桑椹/食椹/爛椹/木椹
sheng#野乘/千乘/史乘/省/晟/盛/陹/澠水
shi#鑰匙/什/識/似的/食/石/氏/拾/適/瑡
shiwa#瓧
shuai#表率/率性/率直/率真/粗率/率領/輕率/直率/草率/大率/坦率/衰
shuang#瀧水/鏯
shu#屬/數/術/熟
shui#游說
shuo#數見/說
si#伺/似/思
sou#蓃/摗
su#宿/鯂
sui#尿泡
ta#拓片/拓印/拓本/拓墨/拓寫/拓手/拓工/碑拓/疲沓/拖沓/雜沓/沓/塔/鴻塔
tang#湯/鏜
tao#陶
tan#反彈/彈性/彈簧/彈力/彈奏/彈跳/彈指/彈劾/彈唱/彈射/彈性體/吹彈/評彈/亂彈琴/彈壓/彈指/彈簧/彈冠/彈雀/彈雀/彈絲/彈丸/澹臺
te#脦
teng#虅
ti#提/體
tiao#調/苕
ting#町/聽
tong#通
tu#迌
tuan#湪
tui#褪
tuo#拓/袥
tun#囤/屯
wei#尾/蔚/圩堤/圩垸/圩田/圩子/趕圩/歌圩
weng#攚
wu#無/可惡/交惡/好惡/厭惡/憎惡/嫌惡/痛惡/深惡/兀
wan#藤蔓/枝蔓/根蔓/蔓草/瓜蔓/蔓兒/莞/萬/百萬/皖
wang#亡
wai#崴
xia#蝦/嚇/夏/廈門/廈大/唬殺
xi#棲/系/蹊/洗/溪/戲/焁/銑/褶衣/褶褲
xiao#校/切削/削面/刀削/刮削
xian#纖細/光纖/纖巧/纖柔/纖小/纖維/纖瘦/纖纖/化纖/纖秀/棉纖/纖塵/銑鐵/金銑
xiang#投降/巷
xie#解數/出血/采血/換血/血糊/尿血/淤血/放血/血暈/血淋/便血/吐血/咯血/葉韻/蝎/蝎子/邪/猲猲
xin#嬜/邤
xiu#銅臭/乳臭/成宿/星宿/璓
xin#馨/信/鴻信
xing#深省/省視/內省/不省人事/省悟/省察/行/滎
xiong#匂
xu#牧畜/畜產/畜牧/畜養/并畜/畜銳/吁/圩/滸
xuan#箮
xue#削/血/樰
xun#蕁/尋
ya#琊
yao#鑰/耀/曜/佋僥/僥覦/僥僺/僥利/僥傒/僥覬/僥會/僥濫/僥望/僥求/僥競/僥薄/僥躐/僥取/僥奇/僥忝/僥速/僥冀/僥冒/瘧子
yan#咽/殷紅/朱殷/腌/煙/曕
ye#液/抽咽/哽咽/咽炎/嗚咽/幽咽/悲咽/葉/葉/璍/潱/拽步/拽扶/拽扎
yi#自艾/遺/屹/嬄/噫
yin#殷/栶
ying#滎經/緓/灜
yo#杭育
yong#涌/硧
you#牗
yu#余/呼吁/吁請/吁求/育/熨帖/熨燙/於
yuan#員/茒/圜丘
yun#熨
yue#約/樂音/器樂/樂律/樂章/音樂/樂理/民樂/樂隊/聲樂/奏樂/弦樂/樂壇/管樂/配樂/樂曲/樂譜/鎖鑰/密鑰/樂團/樂器/嬳/咽噦/唾噦/發噦/干噦/噦吐/噦飯/噦嘔/噦息/噦厥/噦噫/噦逆/噦咽/噦罵/噦心/噦喈/口噦/嘔噦
za#綁扎/結扎/包扎/捆扎/咱家
zan#攢/咱
zang#寶藏/藏歷/藏文/藏語/藏青/藏族/藏醫/藏藥/藏藍/西藏
zai#牛仔/龜仔/龍仔/鼻仔/羊仔/仔仔/麻仔/麵包仔/麥旺仔/鴻仔/煲仔/福仔/畠
zao#栆
ze#擇
zeng#曾國藩/曾孫/曾祖父/曾祖/曾祖母/曾孫女/曾鞏/囎/繒
zong#綜/繌
zha#扎/柞狹/柞薪/柞子/柞鄂/柞葉/柞撒/槱柞/一柞/五柞宮/五柞/讎柞/芟柞/蠟祭/喳
zhai#宅/夈/擇席/擇菜
zhan#粘
zhang#列車長/行長/村長/鎮長/鄉長/區長/縣長/市長/省長/會長/班長/排長/連長/營長/團長/旅長/師長/軍長/委員長/局長/廳長/所長/部長/組長/生長/長大/長高/長個/
zhao#朝朝/明朝/朝暉/朝夕/朝思/今朝/朝氣/朝三/朝秦/朝霞/鷹爪/龍爪/魔爪/爪牙/著急/著迷/著火/怎么著/正著/著涼/一著/犯不著/著數/這么著/犯得著/著慌/著忙/數得著/龍爪槐/嘲哳/嘲惹
zhe#折/著/褶
zhen#殝/椹
zhi#標識/吱/殖/枝/方祇/后祇/皇祇/黃祇/皇地祇/金祇/祇樹/月氏
zhong#重/種
zhou#粥
zhu#屬意/著/駯
zhua#爪子
zhuai#拽
zhuan#羋月傳/外傳/傳記/自傳/正傳/小傳/評傳/傳略/別傳
zhui#椎/隹
zhuo#執著/著裝/著落/著意/著力/附著/著筆/膠著/著實/衣著/著眼/著想/著重/穿著/執著/著墨/著實/沉著/著陸/著想/著色/焯見/焯爍/輝焯
zhuang#幢房/一幢/幢樓/庒
zi#仔/茲
zu#足
zuo#柞/穝
轉載于:https://my.oschina.net/keke412/blog/1787589
總結
以上是生活随笔為你收集整理的java多音字首字母排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是「中华田园敏捷开发」,人才
- 下一篇: h5--块级元素与行内元素