1.大小 pinyin最小了,POAPinyin的聲明就快500行了.
2.速度 其實(shí)三者差不多,但是不要用POAPinyin原生的那個(gè)
3.對(duì)比 pinyin只能取得漢字對(duì)應(yīng)拼音的首字母,PYMethod原本是應(yīng)用于股票查詢的,它的拼音個(gè)數(shù)少于POAPinyin.
對(duì)于這個(gè)漢字"嗯",我拼音輸入法是"en"打出來(lái)的,PYMethod得到的是EN,但是POAPinyin得到的是NG,百度百科也讀NG.....
4.原理
pinyin是把unicode中漢字部分的首字母全部提取到數(shù)組,取得時(shí)候 拼音數(shù)組[漢字的unicode值-unicode中起始漢字值]就直接得到了.
PYMethod是把unicode轉(zhuǎn)成GBK,然后根據(jù)GBK高低位兩個(gè)值確定對(duì)應(yīng)拼音的位置得到拼音
POAPinyin是把所有拼音與之對(duì)應(yīng)的漢字組成一個(gè)表,到時(shí)候往這個(gè)表里查詢(原生convert方法)
改進(jìn)的quickConvert方法是先得到一個(gè)漢字unicode值的上下限,然后轉(zhuǎn)換上面的表成 unicode--拼音 這樣的表,查詢的時(shí)候就是哈希查找,更快,要是這個(gè)unicode不連續(xù)就會(huì)有很大的問(wèn)題了(這個(gè)表里面果然缺了字:"?g?i?k仍?????????????x?z?{????佘????|愣扔?Y楞特????????????????????釀???鋱").這個(gè)函數(shù)還會(huì)跳過(guò)一些非ascii符號(hào).另一個(gè)方法stringConvert修復(fù)了非ascii碼這個(gè)問(wèn)題.使用的時(shí)候最好把上面提到的字加進(jìn)表里.
demo

新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注