你的目标是什么类型的性能?如果您正在寻找替换 HTML 特殊字符,您是否可以不缓存将编码的 HashMap 拆分为特殊字符的结果在两个静态最终变量中?这仍然需要您承担处理 HashMap 的开销,但保存结果会阻止您在每次调用时运行该过程。像这样的东西:
import java.util.HashMap;
import java.util.Map;
class MyStringReplaceCLass {
private static final String[] encodings;
private static final String[] specialCharacters;
static {
HashMap<String, String> characterEncoding = new HashMap<String, String>();
characterEncoding.put("...", "...");
characterEncoding.put("...", "...");
// Put other encodings here as necessary
encodings = new String[characterEncoding.size()];
specialCharacters = new String[characterEncoding.size()];
Map.Entry<String, String>[] entries = characterEncoding.entrySet();
for (int i = 0; i < entries.length; i++) {
encodings[i] = entries[i].getKey();
specialCharacters[i] = entries[i].getValue();
}
}
public String replaceEachEncoding(String text) {
return StringUtils.replaceEach(String text, String[] searchList, String[] replacementList);
}
}
从这里,您可以致电
MyStringReplaceClass.replaceEachEncoding(myText)
我不完全确定这是否完全符合您的要求,但我觉得某种带有光处理的地图将是最干净的解决方案。