Since you're already using StringUtils
, StringUtils.replaceIgnoreCase is a good candidate to go with. Worth to mention that the version 3.5+
required.
public static String replaceIgnoreCase(String text,
String searchString,
String replacement)
Case insensitively replaces all occurrences of a String within another
String.
A null reference passed to this method is a no-op.
StringUtils.replaceIgnoreCase(null, *, *) = null
StringUtils.replaceIgnoreCase("", *, *) = ""
StringUtils.replaceIgnoreCase("any", null, *) = "any"
StringUtils.replaceIgnoreCase("any", *, null) = "any"
StringUtils.replaceIgnoreCase("any", "", *) = "any"
StringUtils.replaceIgnoreCase("aba", "a", null) = "aba"
StringUtils.replaceIgnoreCase("abA", "A", "") = "b"
StringUtils.replaceIgnoreCase("aba", "A", "z") = "zbz"
In your case:
String[] old = {"ABHISHEK", "Name"};
String[] nw = {"Abhi", "nick name"};
String s = "My name is Abhishek";
for (int i = 0; i < old.length; i++) {
s = StringUtils.replaceIgnoreCase(s, old[i], nw[i]);
}
System.out.println(s);
Output:
My nick name is Abhi
You can even create a helper method if you going to use it frequently:
public static String replaceIgnoreCase(final String s, final String searchList[], final String replacementList[]) {
if (searchList.length != replacementList.length)
throw new IllegalArgumentException("Search list and replacement list sizes do not match");
String replaced = s;
for (int i = 0; i < searchList.length; i++) {
replaced = StringUtils.replaceIgnoreCase(s, searchList[i], replacementList[i]);
}
return replaced;
}
And use it like you would use a library call:
s = replaceIgnoreCase(s, old, nw);