删除算法


删除算法相当的繁琐和复杂,且容易出错。


原则上,每次按键都可以当做一个独立的过程,对当前的按键序列进行运算,然而,由于有些结果是在按键过程中产生的,不宜每次按键都重复进行,因而需要善加利用历史的数据。


mCur的用法:
mCur是一个二维数组,第一维是节,第二维是每次按键时的mComposing。


1. 在initSeg()中,如果SegNo==0,清空mCur。
2. 在handleDiv()中,每增加一个新的节,mCur增加一个空的一维数组。
3. 在handleBackspace()中,如果删到了部首本身,就从mCur[SegNo][0]中取出首笔画。
4. 、、,在删到分节符时,mCur.removeLast()。
5. 在getmatch()-B12中,处理删除键,从mCur中取出上一次显示的mComposing,mCur[SegNo][c-1]
6. 在getmatch()-E中,处理删除键,如果之前键入了部首,就精确计算上一次记录的mComposing的下标,
   因为部首是多笔画的,不能直接从部首个数(按键次数)确定上一次是第几个。设置一个计数器似乎更好解决。
7. 在getmatch()中,判断mCur是否为空,否则初始化,附加一个空的一维数组。
8. 、、,判断当前节的记录数是否小于按键次数,如果是则附加当前的mComposing。
   否则(可能是应对删除键?),在前一个位置上记录当前的mComposing。


cur的用法:
cur是一个字符串,用来在getmath()的每一个分支,保存当前的 mComposing,在下一个按键不是删除键的时候,getmatch()的分支D中,mComposing = cur+curstr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值