用java写一个模板引擎解析
下面是一个简单的例子,使用Java实现一个模板引擎解析器:
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TemplateEngine {
private final String template;
private final Map<String, String> variables;
public TemplateEngine(String template) {
this.template = template;
this.variables = new HashMap<>();
}
public void setVariable(String name, String value) {
variables.put(name, value);
}
public String evaluate() {
String result = template;
for (String variable : variables.keySet()) {
String regex = "\\{\\{" + variable + "\\}\\}";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(result);
result = matcher.replaceAll(variables.get(variable));
}
return result;
}
public static void main(String[] args) {
String template = "Hello, {{name}}! Today is {{day}}.";
TemplateEngine engine = new TemplateEngine(template);
engine.setVariable("name", "John");
engine.setVariable("day", "Monday");
String result = engine.evaluate();
System.out.println(result);
}
}
这个例子中,我们创建了一个TemplateEngine类来解析模板。在构造函数中,我们接收模板字符串,并初始化一个变量的映射表。
setVariable方法用于设置变量的值。我们将变量名和值存储在variables映射表中。
evaluate方法用于解析模板字符串。我们遍历variables映射表中的所有变量,使用正则表达式替换模板字符串中对应的变量标记。
在main方法中,我们创建了一个模板引擎实例,设置了两个变量的值,并调用evaluate方法来获取解析后的结果。
运行该程序将输出:`Hello, John! Today is Monday.
原文地址: http://www.cveoy.top/t/topic/idNP 著作权归作者所有。请勿转载和采集!