我尝试了多种方法,但没有得到确切的解决方案。
我有电话联系人搜索之类的要求,在键盘中包含
1-nothing
2-ABC
3-DEF
4-GHI
..
.
现在我按 23 个按钮然后搜索如下
AD , AE , AF , BD , BE , BF , CD , CE , CF
在相同的情况下,我按 234 然后
ADG , ADH , ADI , AEG , AEH , AEI , AFG , AFH , AFI , BDG , BDH , BDI ..........
如果您将每个联系人姓名转换为其对应的数字序列,搜索将更加直接,您不必担心创建字母组合。
Bob => 262
John => 5646
Steve => 78373
Show => 7469
Your => 9687
Work => 9675
Please => 753273
祝你好运。
我建议在这里使用正则表达式。如果您按 234 ,那么您可以构造正则表达式^[ABC][DEF][GHI](^如果您只想从字符串的开头匹配,则使用可选)。您可能还需要确保使用不区分大小写的匹配。
您也可以在 Android 中执行此操作,请参阅http://developer.android.com/reference/java/lang/String.html#matches(java.lang.String)。
(编辑:@JasonC 首先将名称转换为数字的答案也是一个不错的选择)。