ArrayList listaTesti被定义为全局变量
cambiaValore函数从textField获取2个字符串
find函数从textField获取2个字符串,它应该用“conCheParola”替换“testoDaModificare”的所有出现 我已经包含了String.toLowerCase,因此,如果用户插入一个大写的值,则没关系。
如果我不写“string.toLowerCase”它可以工作,但是如果用户放置一个大写值而没有,那么该函数将无效。
private void cambiaValore(String testoDaModificare, String conCheParola)
{
ArrayList <String> appoggio = cerca(testoDaModificare, conCheParola);
int i = 0;
listaTesti.removeAll(listaTesti); //Rimuovo tutti gli elementi della lista
for (String string : appoggio) //E li ri assegno utilizzando quelli modificati
{
String temp = appoggio.get(i);
listaTesti.add(temp);
i++;
}
}
private ArrayList <String> cerca(String testoDaCambiare,String conCheParola)
{
int i = 0;
ArrayList <String> appoggio = new ArrayList();
for(String testo : listaTesti)
{
if(listaTesti.get(i).toLowerCase().contains(testoDaCambiare.toLowerCase()))
{
String testo3 = listaTesti.get(i).replaceAll(testoDaCambiare.toLowerCase(), conCheParola);
appoggio.add(testo3);
i++;
}
else
{
appoggio.add(listaTesti.get(i));
i++;
}
}
return appoggio;
}
答案 0 :(得分:0)
问题在于:
String testo3 = listaTesti.get(i).replaceAll(testoDaCambiare.toLowerCase(), conCheParola);
get(i)
返回的值尚未转换为小写。您需要告诉replaceAll()
忽略大小写。
String testo3 = listaTesti.get(i).replaceAll("(?i)" + testoDaCambiare, conCheParola);
"(?i)"
告诉replaceAll
忽略大小写。