From: http://www.cnblogs.com/v2m_/archive/2012/01/17/2324822.html
对网上流传盛广的三个取得汉字对应拼音的小总结
1.大小 pinyin最小了,POAPinyin的声明就快500行了.
2.速度 其实三者差不多,但是不要用POAPinyin原生的那个convert,那个每次都遍历查找很慢.
3.对比 pinyin只能取得汉字对应拼音的首字母,PYMethod原本是应用于股票查询的,它的拼音个数少于POAPinyin.
对于这个汉字"嗯",我拼音输入法是"en"打出来的,PYMethod得到的是EN,但是POAPinyin得到的是NG,百度百科也读NG.....
4.原理
pinyin是把unicode中汉字部分的首字母全部提取到数组,取得时候 拼音数组[汉字的unicode值-unicode中起始汉字值]就直接得到了.
PYMethod是把unicode转成GBK,然后根据GBK高低位两个值确定对应拼音的位置得到拼音
POAPinyin是把所有拼音与之对应的汉字组成一个表,到时候往这个表里查询(原生convert方法)
改进的quickConvert方法是先得到一个汉字unicode值的上下限,然后转换上面的表成 unicode--拼音 这样的表,查询的时候就是哈希查找,更快,要是这个unicode不连续就会有很大的问题了(这个表里面果然缺了字:"乬乮乲仍兙兛兝兞兡兣匁厑厼叾唜唞唟啹嗧囍堎塄娘嬢岃巪愣扔朰楞特猤瓧瓩瓰瓱瓸瓼甅畓睖碐礽稜脦膶芿薐蟘貣辸酿醸釀鋱铽").这个函数还会跳过一些非ascii符号.另一个方法stringConvert修复了非ascii码这个问题.使用的时候最好把上面提到的字加进表里.
demo
分享到:
相关推荐
iOS 工具类汉字转拼音,非常方便。如济南市--jinanshi 缺分刚从项目摘下来,有需要的用。
是国外大牛写的,IOS中文数据转换成拼音首字母。
qt 跨平台 测试在安卓 ios windows 上可用 支持utf_8 gb2312 编码
PYMethod是把unicode转成GBK,然后根据GBK高低位两个值确定对应拼音的位置得到拼音 POAPinyin是把所有拼音与之对应的汉字组成一个表,到时候往这个表里查询(原生convert方法) 改进的quickConvert方法是先得到一...
通过使用苹果类库CFStringTransform提供的方法实现汉字转拼音。通过kCFStringTransformMandarinLatin把汉字转换为中国拼音。通过kCFStringTransformStripDiacritics把中国拼音转换为英文字母。 小编注:感谢开发者...
iOS - 使用CFStringTransform汉字转拼音
这是我搜索网络资源,然后自己整理的一个输入汉字转拼音及获取首字母的一个示例程序,希望能帮助到兄弟姐妹们。
汉字ios拼音转换。
ios默认使用utf-8格式编码,中文在ios张红的默认排序是不可用的。 本工具提供了中文数组排序,汉字转拼音 具体使用方法见demo
iOS开发代码,汉字转拼音样例代码。
将汉字转为拼音,全部为大写,字与字之间有一个空格,demo是源码,可以参考参考,也可以直接导入使用,方法是类方法,直接调用就行了
IOS应用源码之获取汉字汉语拼音首字母.zip
本文通过一段代码给代码介绍了ios汉字的拼音知识及将汉字转拼音的代码,非常不错,具有参考借鉴价值,感兴趣的朋友一起看下吧
目录Swift中文转拼音(带声调)中文转拼音(无声调)中文提取首字母Objective-C中文转拼音(带声调)中文转拼音(无声调)中文提取首字母 Swift 中文转拼音(带声调) 比如:中国 -> zhōng guó let base = 中国 let ...
iOS开发中经常遇到需要根据联系人、好友的昵称首字母来分区显示,但是怎么获取汉字的首字母呢,现在只需简单的4行代码,就可以轻松加愉快的获取汉字的首字母了,更有swift代码、OC代码供你选择
这也是其中一个汉字转换拼音的算法,大同小异,也希望对大家的所帮助。这个跟上一个我自己整理的就是在查表获取汉字的算法不太一样,前一个是查询数组来获取汉字拼音的数据,这一个是根据汉字的编码来获取拼音。
获取城市列表,searchabar搜索查询,支持汉字和拼音检索
ios应用源码之获取汉字汉语拼音首字母,uitableview中文也可以加index了pinyin
用苹果自带库汉字转拼音并排序