要实现的功能就是 在拨号盘数字界面输入数字检索出联系人。包含全拼,简拼,数字例如:输入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.   

    联系人号码匹配,telephone一般会指定短号、长号匹配的
    例如短号采用7位,长号采用11位匹配
      

  2.   

    建议可以单个匹配
    比如先输入2,可以匹配出abc符合条件的,然后输入5,可以在符合abc条件的结果中二次匹配jkl
    例如:
    输入2,刷新联系人列表出现
    陈菊(c匹配)
    王阿东(a匹配)
    李百度(b匹配)
    陈芳(c匹配)
    阿军(a匹配)
    大伯(b匹配)
    输入3,再次刷新联系人列表出现
    陈菊(cj匹配)
    阿军(aj匹配)这种匹配方式,一般用户输入数字过多,就会出现匹配结果为0的现象,关键还是你确定匹配原理,清楚如何匹配字符去查找联系人
    以上的方式匹配原理是姓名中每个首字母拼音
      

  3.   

    博客:http://blog.csdn.net/wangqilin8888
      

  4.   

    看看android的这个类PhoneNumberUtil