注册 登录
主题 : 获取汉字汉语拼音首字母,UITableView中文也可以加index了
级别: 圣骑士

UID: 665
精华: 1
发帖: 40
可可豆: 9372 CB
威望: 9372 点
在线时间: 2621(时)
注册时间: 2008-09-10
最后登录: 2017-09-07
0 楼:  发表于: 2010-04-21 20:58    发自: Web Page
来源于 通用代码 分类

获取汉字汉语拼音首字母,UITableView中文也可以加index了    (在iOS代码库中浏览本帖)

管理提醒: 本帖被 gagaga 设置为精华(2010-04-27)
加班研究这个了,最后发现最简单的码表最解决问题

支持20902汉字,最新的6千多生僻字没拿到码表,不过影响不大

pinyin.zip (15 K) 下载次数:2690
[ 此帖被gagaga在2010-04-27 13:51重新编辑 ]

专职承接iOS开发,QQ 215001199
级别: 精灵王

状态: 连续签到 - [44天]
UID: 12410
精华: 0
发帖: 1582
可可豆: 15771 CB
威望: 15656 点
在线时间: 1248(时)
注册时间: 2009-12-29
最后登录: 2016-10-18
1 楼:  发表于: 2010-04-22 20:15    发自: Web Page
好东西哎,下下来研究研究.
___________犯其至难•图其至远

主页: http://www.zhiyuan3g.com
级别: 精灵王

状态: 连续签到 - [44天]
UID: 12410
精华: 0
发帖: 1582
可可豆: 15771 CB
威望: 15656 点
在线时间: 1248(时)
注册时间: 2009-12-29
最后登录: 2016-10-18
2 楼:  发表于: 2010-04-22 20:17    发自: Web Page
测试汉字竟然是"中国共(..)产(..)党万岁".
___________犯其至难•图其至远

主页: http://www.zhiyuan3g.com
级别: 圣骑士

UID: 2228
精华: 4
发帖: 73
可可豆: 7020 CB
威望: 7020 点
在线时间: 501(时)
注册时间: 2009-02-16
最后登录: 2014-10-30
3 楼:  发表于: 2010-04-22 21:51    发自: Web Page
这个范例无法解决多音字问题
我在我的《中文伴侣》里解决了多音字问题,关键是要使用掩码……
级别: 骑士

状态: 连续签到 - [3天]
UID: 10888
精华: 0
发帖: 166
可可豆: 1546 CB
威望: 1546 点
在线时间: 312(时)
注册时间: 2009-11-23
最后登录: 2019-08-12
4 楼:  发表于: 2010-04-27 13:47    发自: Web Page
能解释一下上来那个巨长的数组干嘛用的吗???
爬……一直在爬。。。。伪侠客的留言。。。。
级别: 圣骑士

UID: 665
精华: 1
发帖: 40
可可豆: 9372 CB
威望: 9372 点
在线时间: 2621(时)
注册时间: 2008-09-10
最后登录: 2017-09-07
5 楼:  发表于: 2010-04-27 17:24    发自: Web Page
引用
引用第4楼sxsoul于2010-04-27 13:47发表的  :
能解释一下上来那个巨长的数组干嘛用的吗???


码表,每个汉字一个

码表这种方式确实不能支持多音字
专职承接iOS开发,QQ 215001199
级别: 圣骑士

UID: 665
精华: 1
发帖: 40
可可豆: 9372 CB
威望: 9372 点
在线时间: 2621(时)
注册时间: 2008-09-10
最后登录: 2017-09-07
6 楼:  发表于: 2010-04-27 21:59    发自: Web Page
引用
引用第3楼bobgreen于2010-04-22 21:51发表的  :
这个范例无法解决多音字问题
我在我的《中文伴侣》里解决了多音字问题,关键是要使用掩码……


多音字我没有搜索到完美解法,这个要做index的话对时间空间都要求较高,iPhone通讯录里录入"单田芳",给我排到D里面了。

分词是个难点,例如:南京市长江大桥,解法1:南京,市长,叫江大桥。解法2:南京市,长江大桥。

Bob兄能否详细讲讲掩码怎么用?我Google不到
专职承接iOS开发,QQ 215001199
级别: 精灵王
UID: 10786
精华: 0
发帖: 494
可可豆: 4867 CB
威望: 4867 点
在线时间: 442(时)
注册时间: 2009-11-19
最后登录: 2015-03-09
7 楼:  发表于: 2010-05-01 16:30    发自: Web Page
顶一个       
空间地址,有空来做做哈:http://hi.baidu.com/%E9%9A%8F%E9%A3%8E_1989/home
级别: 版主

状态: 连续签到 - [144天]
UID: 491
精华: 6
发帖: 1763
可可豆: 112160 CB
威望: 112807 点
在线时间: 8537(时)
注册时间: 2008-08-19
最后登录: 2019-05-19
8 楼:  发表于: 2010-05-01 23:40    发自: Web Page
这个例子咋用?
 Developer
------------------------------------------------------------
Η αγάπη ποτέ δεν αποτυγχάνει.
愛是永不止息。
Love never fails.

    --《圣经.新约》哥林多前书第13章
级别: 圣骑士

UID: 2228
精华: 4
发帖: 73
可可豆: 7020 CB
威望: 7020 点
在线时间: 501(时)
注册时间: 2009-02-16
最后登录: 2014-10-30
9 楼:  发表于: 2010-05-02 16:55    发自: Web Page
我的软件只需要找到对应的字母,不需要分词,所以分词这部分我没有研究~
我用一个longlong数据类型,每个数字和字母对应2进制的一位。
比如A是
0x0000000000000001(可能位数不对)
那么B是
0x0000000000000002
C
0x0000000000000004
D
0x0000000000000008
E
0x0000000000000010

如果一个汉字同时有多个读音,那就只要加一下对应其他字母的值即可。

准备一个码表,记录了20903个GBK汉字的所有读音的拼音首字母的值的和是多少

搜索的时候,拿某个字母或数字的值去求“与”,结果不是0的话,那就是匹配成功,是0的话,那就是不包含这个读音。

大概就是这个意思。但是我实际做下来的效率还不够快,我还需要优化速度

CocoaChina社区转载内容已尽可能注明出处,如未能核实来源或转发内容图片有权利瑕疵的,请及时联系社区进行修改或删除【联系方式QQ : 3442093904 邮箱:support@cocoachina.com】文章内容为作者独立观点,不代表CocoaChina社区立场。版权归原作者所有,如申请授权请联系作者,因文章侵权CocoaChina社区不承担任何法律及连带责任。

描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部