【问题标题】:If I write String.toLowerCase, it won't work, but I need it, how can I solve?如果我写String.toLowerCase,它不会工作,但我需要它,我该如何解决?
【发布时间】:2018-04-18 21:21:51
【问题描述】:

ArrayList listaTesti 被定义为全局变量

cambiaValore 函数从文本字段中获取 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;
}

【问题讨论】:

    标签: java string list


    【解决方案1】:

    问题就在这里:

    String testo3 = listaTesti.get(i).replaceAll(testoDaCambiare.toLowerCase(), conCheParola);
    

    get(i) 返回的值尚未转换为小写。您需要告诉replaceAll() 忽略大小写。

    String testo3 = listaTesti.get(i).replaceAll("(?i)" + testoDaCambiare, conCheParola);
    

    "(?i)" 告诉replaceAll 忽略大小写。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 2015-05-03
      • 2021-10-02
      • 2015-12-17
      • 1970-01-01
      相关资源
      最近更新 更多