我有一个电话号码列表,其中可能包含或不包含国家代码。我从后台服务获取一个始终包含国家代码的号码。因此,我最佳地找到了与来自后端服务的号码匹配的号码。最佳搜索字符串中的子字符串java
现在我正在做的事情是:
for(String number : backendNumbers){
for(Map.Entry<String, String> entry : contactMap.entrySet()){
if(number.endsWith(entry.getKey()) && entry.getKey().length() > MINIMUM_CONTACT_LENGTH){
Log.i(TAG, "Found name for "+entry.getKey()+" : "+entry.getKey()+":"+entry.getValue());
break;
}
}
}
凡接触的地图是地图这样的接触= <“01710111111”,“有些名”> - >该项可能会或可能不会包含国家代码。在大多数情况下,他们没有。
当我从后端一些总是包含这样的国家代码:“8801710111111”。
现在,这种方法的问题是有生成每次我需要地图的接触地图的开销。同样在我从后端得到N个号码的情况下,我需要遍历整个联系地图,以找到名称。
那么我在这里可以做得更好吗?任何建议将不胜感激。
不要遗憾的是,国家代码并不总是3个字符,它可以是1,2,3或4个字符。 – Shaheed