java - 在java中使用动态变量解析文本

标签 java parsing variables text dynamic-variables

我需要解析文本,并将变量放入其中。类似的东西:

lorem ${var} dolor sit amet consectetur adipiscing elit

结束将 String var = "ipsum" 替换为 ${var}

最简单的方法是什么?我将使用正则表达式和匹配器。但可能是 spring(或其他东西)已经具有此功能?

最佳答案

Java 标准类 MessageFormat相对接近你想要的,但它不处理任意占位符名称。如果需要,最好的选择就是正则表达式。如果您认为它们速度不快,我建议您在背弃它们之前进行测量。这是一个大纲:

final Map<String, String> vars = new HashMap<String, String>();
vars.put("var", "ipsum");
final String s = "lorem ${var} dolor sit amet consectetur adipiscing elit";
final Matcher m = Pattern.compile("\\$\\{(.*?)\\}").matcher(s);
final StringBuffer b = new StringBuffer(s.length());
while (m.find()) m.appendReplacement(b, vars.get(m.group(1)));
m.appendTail(b);
System.out.println(b);

关于java - 在java中使用动态变量解析文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11283465/

相关文章:

java - webdrivermanager.chromedriver().setup() ".", { 预期

java - MongoDB GridFS 文件插入 Java

java - 使用java在文本文件中查找字符串的问题

java - 使用 GSON 解析 JSON 文件

java - 如何将 ISO 8601 日期(字符串)转换为日期?

mysql - 在 SELECT 语句中使用变量引用另一个数据库

java - 如何按用户的分割大小在 JOptionpane 中显示分割字符串

python - 解析 Python 模块文档字符串

java - 我应该在循环中重新定义或重新分配变量吗?

javascript - 比较 Javascript 中每个数组属性的数值