你是否应该阅读本文?
只要你觉得手机通讯录快速查找中文联系人不够方便,但支持多个字母快速查找,你就可以看看本文。虽然本文是针对诺基亚3220写的。
目的:
让通讯录支持拼音首字母快速查找
几个概念:
为了下文叙述方便,提出下面几个概念。
全拼:一个或几个汉字的拼音组合。
简拼:一个或几个汉字全拼的首字母的组合。
第n字母:大部分手机键盘2~9号数字键上有3个或4个字母,它们是按字母先后顺序排列的,每个按键上的第1个字母就是该按键上所有字母(包括它自己)的第1字母,第2个字母是第2字母,第3个字母是第3字母,如果有第4个字母,那它就是第4字母。例如,2号数字键上有A、B、C三个字母,这三个字母的第 1字母都是A,第2字母是B,第3字母是C。
基本原则:
(1)在联系人姓名前加一个字符串,快速查找时就当手机支持简拼查找。虽然这样使联系人列表看起来不那么整齐。
(2)为了减少重码,最后一个字(如果是汉字)使用全拼。
操作方法:
(1)取联系人姓名的简拼(最后一个字如果是汉字的话就取全拼)。如果联系人姓名是有英文,直接取英文字母就可以了。为了尽可能减少添加的字符串与英文姓名混淆,大写的字母都变成相应的小写字母。例如有联系人“陈先生”,则取“cxsheng”,“李军”取“ljun”,“Susan”取“susan”, “樱花草Sweety”取“yhcsweety”,“Sweety樱花草”取“sweetyyhcao”。
(2)将上一步得到的字母串中的每个英文字母变成相应的第1字母。这样处理的原因是,如果简拼不是第1字母,要连续按几次键才能输入,比较麻烦,这样做就可以忽略这个影响。如“cxsheng”变成“awpgdmg”,“ljun”变成“jjtm”。
(3)处理上一步得到的字母串中的连续重复字母串,优先处理最长的连续字母串。第1字母重复n次,就把它变成它的第n字母,如果n>3(连续字母是 p、w时,为n>4),先减去3(或4)的整数倍使n≤3(或n≤4)。之所以这样处理,是因为快速按同一个键多次,会循环输入下一个字母。例如,将“jjtm”中最长的连续第1字母串“jj”变成“k”,即“jjtm”变成“ktm”;“awwwt”变成“ayt”;“addddd”变成 “ae”。
(4)编辑联系人姓名,将上一步得到的字符串的前4个字母加到姓名开头,不足4个的有多少取多少。不一定要取4个,如果你的联系人很多很多,可以多取。
适用范围:
本文是针对诺基亚3220手机写的,它的操作系统是S40。这款手机通讯录快速查找功能的特点是:快速查找默认的输入法是全拼与英文混合的,不可以将默认输入法改为数字。
可以肯定,这种编码方法不止适用于诺基亚3220。根据上面的基本原则(或者有更适合你的),任何可以输入多个字符快速查找的手机都是可以的,你可以想出更适合你的操作方法。即使是已经支持简拼查找的手机,根据基本原则(2),还可以改进以减少重码。
最后说明:
编程高手,觉得必要的话,可以写一个电脑程序自动处理。
其实思路很简单,但是写出来看起来有点复杂。如果你有没看懂的地方,那一定是我没写清楚。若你能提出意见和建议,我会很感激。