由于您已经在使用StringUtils,因此StringUtils.replaceIgnoreCase是一个不错的选择。值得一提的是3.5+所需的版本。
public static String replaceIgnoreCase(String text,
String searchString,
String replacement)
不区分大小写地替换另一个字符串中所有出现的字符串。
传递给此方法的空引用是无操作的。
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"
在你的情况下:
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);
输出:
My nick name is Abhi
如果您要经常使用它,您甚至可以创建一个辅助方法:
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;
}
并像使用库调用一样使用它:
s = replaceIgnoreCase(s, old, nw);