標籤:class code http com 使用 檔案
漢字轉拼音的庫主要是:
pinyin https://github.com/hotoo/pinyin
PYMethod https://github.com/a85816841/PotentialGragonSnail/tree/master/ql/lib/pinying
POAPinyin https://github.com/leeeboo/POAPinyin
PinYin4Objc https://github.com/kimziv/PinYin4Objc
實現原理:
- pinyin是把unicode中漢字部分的首字母全部提取到數組,取得時候 拼音數組[漢字的unicode值-unicode中起始漢字值]就直接得到了.
- PYMethod是把unicode轉成GBK,然後根據GBK高低位兩個值確定對應拼音的位置得到拼音
- POAPinyin是把所有拼音與之對應的漢字組成一個表,到時候往這個表裡查詢(原生convert方法)
- 改進的quickConvert方法是先得到一個漢字unicode值的上下限,然後轉換上面的表成 unicode--拼音 這樣的表,查詢的時候就是雜湊尋找,更快,要是這個unicode不連續就會有很大的問題了(這個表裡面果然缺了字:"?g?i?k仍?????????????x?z?{????佘????|愣扔?Y楞特????????????????????釀???鋱").這個函數還會跳過一些非ascii符號.另一個方法stringConvert修複了非ascii碼這個問題.使用的時候最好把上面提到的字加進表裡.
比較:
- 大小 pinyin最小了,POAPinyin的聲明就快500行了.
- 速度 其實三者差不多,但是不要用POAPinyin原生的那個convert,那個每次都遍曆尋找很慢.
- 對比 pinyin只能取得漢字對應拼音的首字母,PYMethod原本是應用於股票查詢的,它的拼音個數少於POAPinyin.
對於這個漢字"嗯",我拼音IME是"en"打出來的,PYMethod得到的是EN,但是POAPinyin得到的是NG,百度百科也讀NG.....
PinYin4Objc 是一個效率很高的漢字轉拼音類庫,支援簡體和繁體中文。
有以下特性:
1.效率高,使用資料緩衝,第一次初始化以後,拼音資料存入檔案快取和記憶體緩衝,後面轉換效率大大提高;
2.支援自訂格式化,拼音大小寫等等;
3.拼音資料完整,支援中文簡體和繁體,與網路上流行的相關項目比,資料很全,幾乎沒有出現轉換錯誤的問題。
效能比較:與之前的pinyin,POAPinyin和PYMethod等項目比較,PinYin4Objc的速度是非常快的,差不多為:0.20145秒/1000字