Java中最有效的子串替换

时间:2017-04-03 17:24:28

标签: java hashmap

我正在向LaTeX转换器编写XML(JATS标准版),我想知道什么是转发LaTeX特殊符号的最佳方法。在我的转换器中,来自XML的所有数据都通过setter传输到Java Object,而不是使用getter写入TeX文件。 包含Node中文本的对象的简单代码:

public class Par extends ParContent {
    private String parContent;

    public String getContent() {    
        return parContent;
    }

    public void setContent(String parContent) {
        this.parContent = parContent;

    }
}

我现在需要的是替换在LaTeX中具有特殊含义的符号。为此使用了HashMap。例如:

public String replacement(String parContent) {
        HashMap<String, String> forReplacement = new HashMap<String, String> ();
        forReplacement.put("%", "\\%");
        forReplacement.put("±", "$\\pm$");
        forReplacement.put("<", "\\textless{}");
        forReplacement.put(">", "\\textgreater{}");
        //String parContent1 = null;
        for (Entry<String, String> entry : forReplacement.entrySet()) {
            if (parContent.contains(entry.getKey())) {
                parContent = parContent.replace(entry.getKey(), entry.getValue());
            }   
        }
        return parContent;
    }

我个人有2个问题:

  • 就速度而言,这是最有效的方式吗?需要很多 要替换的符号。
  • 最好与setter一起使用(设置时) 值)或getter(在检索值时)或者没有 多大?

0 个答案:

没有答案