【发布时间】:2018-03-28 14:08:11
【问题描述】:
我正在使用String.startsWith 方法比较两个字符串,看看其中一个是否以引入的字符开头。
代码
List<Province> models;
public int getIndexIfStartsWith(String str){
for(int index = 0; index < models.size(); index++){
if(str.startsWith(models.get(index).getKey())){
return index;
}
}
return -1;
}
我正在与西班牙的省份列表进行比较。如果我将14006 作为一个字符串进行比较,该方法将使用key(诸如“1”、“28”等数字)和value(省份名称)对省份列表进行迭代。
当我输入14006 时,该方法返回我的项目"1", "ALAVA",但“1”与“14”不同,后者是比较值的乞求。密钥长度为 1 的 ALAVA,不应与“14”(所需值的乞求)进行比较。
怎么了??
compare 14006 against 1, ALAVA
2, ALBACETE
3, ALICANTE
...
14, CORDOBA
Córdoba, 14006 应该是唯一的匹配项,但 Alava 也会返回。
我用它来用零填充数字,所以我可以每次都与 2 位数字进行比较。
public static String padLeft(String stringToPad, int padToLength){
String retValue = null;
if(stringToPad.length() < padToLength) {
retValue = String.format("%0" + String.valueOf(padToLength - stringToPad.length()) + "d%s",0,stringToPad);
}
else{
retValue = stringToPad;
}
return retValue;
}
后来,我用这个...
public int getIndexIfStartsWith(String str){
for(int index = 0; index < models.size(); index++){
if(str.startsWith(CommonUtils.padLeft(models.get(index).getKey(), 2))){
return index;
}
}
return -1;
}
【问题讨论】:
-
什么是模型类型?什么清单?
-
Arraylist
list ---> 字符串键,字符串值。密钥存储一个数字。我需要和这个比较
标签: android string compare match