0
我需要改进我的系统搜索字符串EditText
。目前,我有这样的例子:改进EditText中的搜索字符串
要搜索的字符串 - >普拉多博物馆
如果我搜索这些字符串被发现:
- 国立博物馆
- 普拉多
如果我搜索这个字符串,它找不到:
- 普拉多博物馆
如何调试我的代码找到Museo del Prado
?感谢
@Override
public void afterTextChanged(Editable s) {
filterArray.clear();
searchString = edittextBuscar.getText().toString().trim();
String cadenaBuscar = reemplazarCaracteres(searchString);
if (items.size() > 0 && cadenaBuscar.length() > 0) {
for (Items name : items) {
String cadenaItem = reemplazarCaracteres(name.getNombre());
if (cadenaItem.toLowerCase(Locale.getDefault()).contains(cadenaBuscar.toLowerCase(Locale.getDefault()))) {
filterArray.add(name);
}
}
setAdapterToListview(filterArray);
} else {
filterArray.clear();
setAdapterToListview(items);
}
}
private static String reemplazarCaracteres(String cadena) {
String original = "áàéèíìóòúùüÁÀÉÈÍÌÓÒÚÙÜñÑçÇ";
String ascii = "aaeeiioouuuAAEEIIOOUUUnNcC";
String cadenaLimpia = cadena;
for (int i = 0; i < original.length(); i++) {
cadenaLimpia = cadenaLimpia.replace(original.charAt(i), ascii.charAt(i));
}
return cadenaLimpia;
}
我想你应该打破你的搜索字符串成独立的实体。搜索Museo,然后搜索del ... Prado。但是,一个字符串意味着你必须匹配所有的东西 – Martin