要实现的功能就是 在拨号盘数字界面输入数字检索出联系人。包含全拼,简拼,数字例如:输入25 可以得到 “陈菊” 这个联系人,(2中有abc,3中有jkl) 请求比较简易的,并且速度较快的方法,谢谢。遇到的难点:
1.要输入的字符串是在拨号盘中输入,也就是只能输入2到9的数字。
那我怎样根据数字得到相对应的字母。比如:2对应(a,b,c);3对应(d,e,f)
2.就算能得到对应的字符,那应该怎样去匹配。
比如:输入"23" 两个数字。会匹配出的字符串包括:"ad","ae","af","bd","be","bf","cd","ce","cf" 9个字符串。
我会拿这九个字符串去数据库去匹配。
关键问题是一般用户都会输入很多数字,手机号就有11位,那匹配起来数量相当的大,11位的话,匹配出来的字符串就是3的11次方。然后拿这么多字符串去根数据库里的联系人去匹配。数量又会大大的增加。
1.要输入的字符串是在拨号盘中输入,也就是只能输入2到9的数字。
那我怎样根据数字得到相对应的字母。比如:2对应(a,b,c);3对应(d,e,f)
2.就算能得到对应的字符,那应该怎样去匹配。
比如:输入"23" 两个数字。会匹配出的字符串包括:"ad","ae","af","bd","be","bf","cd","ce","cf" 9个字符串。
我会拿这九个字符串去数据库去匹配。
关键问题是一般用户都会输入很多数字,手机号就有11位,那匹配起来数量相当的大,11位的话,匹配出来的字符串就是3的11次方。然后拿这么多字符串去根数据库里的联系人去匹配。数量又会大大的增加。
例如短号采用7位,长号采用11位匹配
比如先输入2,可以匹配出abc符合条件的,然后输入5,可以在符合abc条件的结果中二次匹配jkl
例如:
输入2,刷新联系人列表出现
陈菊(c匹配)
王阿东(a匹配)
李百度(b匹配)
陈芳(c匹配)
阿军(a匹配)
大伯(b匹配)
输入3,再次刷新联系人列表出现
陈菊(cj匹配)
阿军(aj匹配)这种匹配方式,一般用户输入数字过多,就会出现匹配结果为0的现象,关键还是你确定匹配原理,清楚如何匹配字符去查找联系人
以上的方式匹配原理是姓名中每个首字母拼音