java獲取漢字拼音首字母 為什么有些國(guó)內(nèi)程序員把Java讀成「家蛙」?
為什么有些國(guó)內(nèi)程序員把Java讀成「家蛙」?為什么有些人別人怎么讀他都叨叨,管的是不是太寬了?印象中有個(gè)同事,特別愛(ài)抬杠挑刺,別人說(shuō)itouch,他說(shuō)蘋果沒(méi)有itouch,只有ipod touch。如
為什么有些國(guó)內(nèi)程序員把Java讀成「家蛙」?
為什么有些人別人怎么讀他都叨叨,管的是不是太寬了?
印象中有個(gè)同事,特別愛(ài)抬杠挑刺,別人說(shuō)itouch,他說(shuō)蘋果沒(méi)有itouch,只有ipod touch。
如何用java、javascript和python獲取中文的拼音首字母?
這個(gè)問(wèn)題還挺不好回答的。因?yàn)椴恢李}主的意圖,也不清楚是否要考慮多音字的問(wèn)題??赡苁俏蚁攵嗔?,在這里我就給一個(gè)利用GB2312編碼表查詢拼音首字母的方案。
GB2312編碼
GB2312編碼共收錄漢字6763個(gè),其中一級(jí)漢字3755個(gè),二級(jí)漢字3008個(gè),另外還有682個(gè)全角字符。其中,一級(jí)漢字是按照拼音字母的順序排列的??芍苯佑镁幋a查詢拼音首字母。不過(guò),二級(jí)漢字是按照偏旁部首排列的,沒(méi)法查,這部分漢字只能自己做一份對(duì)照表了。
一級(jí)漢字查詢
根據(jù)GB2312編碼規(guī)則,可按下表查詢。
- 1601-1636 a
- 1637-1832 b
- 1833-2077 c
- 2078-2274 d
- ……(略)
百度一下可以找到完整的編碼表。
二級(jí)漢字
這三千多個(gè)字只能自己做表了。我有一個(gè)暗黑的方法,就是找到拼音輸入法的數(shù)據(jù)表,整理一下拿來(lái)用。這個(gè)方法有可能涉及到版權(quán)問(wèn)題,我就不細(xì)說(shuō)了。
Javascript的限制
Javascript是在瀏覽器上執(zhí)行的,攜帶一份巨大的對(duì)照表可能嚴(yán)重影響網(wǎng)頁(yè)的下載速度。建議只對(duì)應(yīng)一級(jí)漢字。另外,JS沒(méi)有編碼轉(zhuǎn)換函數(shù),應(yīng)盡量避免編碼轉(zhuǎn)換,實(shí)在不能避免的話,只能自己寫(xiě)轉(zhuǎn)換函數(shù)了。網(wǎng)上雖有不少例子,都不是很可靠。要有個(gè)別編碼存在轉(zhuǎn)換錯(cuò)誤的覺(jué)悟。
算法的考慮
如果攜帶二級(jí)漢字對(duì)照表,則需要考慮提高查詢速度。二叉樹(shù)算法是個(gè)不錯(cuò)的選擇。