iOS 漢字轉拼音

漢字轉拼音的庫主要是:git

pinyin  https://github.com/hotoo/pinyingithub

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碼這個問題.使用的時候最好把上面提到的字加進表裏.

 

比較:post

  1. 大小 pinyin最小了,POAPinyin的聲明就快500行了.
  2. 速度 其實三者差很少,可是不要用POAPinyin原生的那個convert,那個每次都遍歷查找很慢.
  3. 對比 pinyin只能取得漢字對應拼音的首字母,PYMethod本來是應用於股票查詢的,它的拼音個數少於POAPinyin.

  對於這個漢字"嗯",我拼音輸入法是"en"打出來的,PYMethod獲得的是EN,可是POAPinyin獲得的是NG,百度百科也讀NG.....性能

PinYin4Objc 是一個效率很高的漢字轉拼音類庫,支持簡體和繁體中文。
有如下特性:
1.效率高,使用數據緩存,第一次初始化之後,拼音數據存入文件緩存和內存緩存,後面轉換效率大大提升;
2.支持自定義格式化,拼音大小寫等等;
3.拼音數據完整,支持中文簡體和繁體,與網絡上流行的相關項目比,數據很全,幾乎沒有出現轉換錯誤的問題。
性能比較:與以前的pinyin,POAPinyin和PYMethod等項目比較,PinYin4Objc的速度是很是快的,差很少爲:0.20145秒/1000字 ui

相關文章
相關標籤/搜索