手机通讯录联系人搜索
1.需求:
引用
手机通讯录联系人搜索支持单字,拼音跳跃搜索
2.实现原理
引用
将搜索关键词按字符切分,组合成正则表达式,再从db中获得contactsAllList,遍历将field转换为拼音,类似"YAO 姚 YI 亦 RONG 容"的格式,转换后通过生成的正则表达式匹配,成功则代表搜索成功
3.正则表达式
^(.*\\b)?$1.*$
4.测试
static String sourceStr = "YAO 姚 YI 亦 RONG 容"; static String key = "YI"; static String reg = "(.*\\b)?$1"; // TODO 优化:charAt()效率,StringBuffer public static void main(String[] args) { String regex = ""; key = key.toUpperCase(); for (int i = 0; i < key.length(); i++) { regex += reg.replace("$1", String.valueOf(key.charAt(i))); } regex = "^" + regex + ".*$"; System.out.println(regex); System.out.println(Pattern.compile(regex).matcher(sourceStr).matches()); }
相关推荐
flyingssky 2020-08-18
Lzs 2020-10-23
聚合室 2020-11-16
零 2020-09-18
Justhavefun 2020-10-22
jacktangj 2020-10-14
ChaITSimpleLove 2020-10-06
Andrea0 2020-09-18
周游列国之仕子 2020-09-15
afanti 2020-09-16
88234852 2020-09-15
YClimb 2020-09-15
风雨断肠人 2020-09-04
卖口粥湛蓝的天空 2020-09-15
stulen 2020-09-15
pythonxuexi 2020-09-06
abfdada 2020-08-26