簡體   English   中英

如果我編寫String.toLowerCase,它將無法正常工作,但是我需要它,如何解決?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM