[英]If I write String.toLowerCase, it won't work, but I need it, how can I solve?
ArrayList listaTesti被定義為全局變量
cambiaValore函數從textField中獲取2個字符串
find函數從textField中獲取2個字符串,並且應該將“ testoDaModificare”的所有出現替換為“ conCheParola”(我已包含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;
}
問題在這里:
String testo3 = listaTesti.get(i).replaceAll(testoDaCambiare.toLowerCase(), conCheParola);
從get(i)
返回的值尚未轉換為小寫。 您需要告訴replaceAll()
忽略大小寫。
String testo3 = listaTesti.get(i).replaceAll("(?i)" + testoDaCambiare, conCheParola);
"(?i)"
告訴replaceAll
忽略大小寫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.