la sustitución entre mayúsculas y minúsculas múltiples cadenas

Abhishek:

Quiero reemplazar casos múltiples cadenas insensibles a partir de una cadena.

Podría haber usado: org.apache.commons.lang.StringUtils.replaceEach(text, searchList, replacementList)

pero es obras para cuerdas sensibles de casos.

¿Hay un método similar que funciona para las cadenas mayúsculas y minúsculas?

static String[] old = {"ABHISHEK","Name"};
static String[] nw = {"Abhi","nick name"};
static String s="My name is Abhishek";
System.out.println(StringUtils.replaceEach(s, old, nw));

Salida:

My name is Abhishek

Esperado:

My nick name is Abhi
Dang Nguyen:

Usted puede tratar de utilizar expresiones regulares para archivarlo

Ejemplo

String str = "Dang DANG dAng dang";
//replace all dang(ignore case) with Abhiskek
String result = str.replaceAll("(?i)dang", "Abhiskek");
System.out.println("After replacement:" + "   " + result);

Resultado:

Después de la sustitución: Abhiskek Abhiskek Abhiskek Abhiskek

EDITAR


String[] old = {"ABHISHEK","Name"};
String[] nw = {"Abhi","nick name"};
String s="My name is Abhishek";
//make sure old and nw have same size please
for(int i =0; i < old.length; i++) {
    s = s.replaceAll("(?i)"+old[i], nw[i]);
}
System.out.println(s);

Resultado:

Mi apodo es Abhi

Ideales básica: Regex Ignorar mayúsculas y replaceAll ()

Desde el comentario @flown (Gracias) es necesario utilizar

str.replaceAll("(?i)" + Pattern.quote(old[i]), nw[i]);

Debido a que trata de expresiones regulares algún carácter especial con un significado diferente, ej: .comoany single character

Así, utilizando la Pattern.quoteva a hacer esto.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=197787&siteId=1
Recomendado
Clasificación