您可以通过使用预编译的正则表达式来提高性能。无论如何,引擎盖String.replaceAll
下都会为您编译和应用正则表达式。由于正则表达式的编译计算量相对较大,因此在频繁执行此代码时应该会提高性能。
private static final Pattern PATTERN_1 = Pattern.compile("\u00f5");
private static final Pattern PATTERN_2 = Pattern.compile(Character.toString((char) 241));
String original = new String("A" + (char) 245 + "\u00f1" + "D");
String replaced2 = PATTERN_1.matcher(original).replaceAll("B");
replaced2 = PATTERN_2.matcher(replaced2).replaceAll("C");
System.out.println(original + " -> " + replaced2);
将打印出:
A??D -> ABCD
当使用非常长的时间时,String
这可能不会提供比您建议的性能更高的性能。
顺便说一句:
在代码中使用非 UTF-8 字符会给你(和你的同事)带来痛苦。您应该始终使用Unicode 字符或字符十进制表示。