Java中最有效的子字符串替换
我正在将XML(JATS标准)编写到LaTeX转换器,我想知道转义LaTeX特殊符号的最佳方法是什么。在我的转换器中,XML中的所有数据都通过setter传输到Java对象,然后通过getter写入TeX文件。 包含来自节点的文本作为字符串的对象的简单代码:Java中最有效的子字符串替换,java,hashmap,Java,Hashmap,我正在将XML(JATS标准)编写到LaTeX转换器,我想知道转义LaTeX特殊符号的最佳方法是什么。在我的转换器中,XML中的所有数据都通过setter传输到Java对象,然后通过getter写入TeX文件。 包含来自节点的文本作为字符串的对象的简单代码: public class Par extends ParContent { private String parContent; public String getContent() { retur
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;
}
公共字符串替换(字符串内容){
HashMap forReplacement=新的HashMap();
用于替换。放置(“%”,“\\%”);
用于替换。放置(“±”、“$\\pm$”;
用于替换。put(“,”\\textmorer{}”);
//字符串parContent1=null;
for(条目:forReplacement.entrySet()){
if(parContent.contains(entry.getKey())){
parContent=parContent.replace(entry.getKey(),entry.getValue());
}
}
返回部分内容;
}
我个人有两个问题:
- 就速度而言,这是最有效的方法吗?有很多需要 要替换的符号的名称李>
- 与setter(设置时)一起使用是否更好 值)或getter(在检索值时)或 几率
包含的内容,然后替换
,只需执行replaceAll
替换即可,谢谢