当前位置:   article > 正文

java对字符串中的{}占位符进行数据替换_java {}替换

java {}替换

正则表达式的使用,记录一下,以后用到了直接复制

要想通过{},并且根据{}中的字段名进行数据的匹配并替换,我们需要用到正则表达式,下面是代码的实现

  1. private static final Pattern PATTERN = Pattern.compile("\\{([^}]+)}");
  2. public String selectTemplateDetailByRule() {
  3. StringBuilder stringBuilder = new StringBuilder("1.{aa.1},2.{bb.1},3.{cc.1}");
  4. Map<String,String> map = new HashMap<>();
  5. map.put("aa.1","第一条数据");
  6. map.put("bb.1","第二条数据");
  7. map.put("cc.1","第三条数据");
  8. final Map<String,String> finalMap = map;
  9. //使用正则匹配出符合 {} 的数据
  10. Matcher matcher = PATTERN.matcher(stringBuilder);
  11. while (matcher.find()) {
  12. String match = matcher.group(1);
  13. String s1 = finalMap.get(match);
  14. stringBuilder.replace(matcher.start(), matcher.end(), s1);
  15. //因为我们替换会导致原来的字符串的长度和位置发生改变,第二次替换是位置就错误了,所以要借助下面这个保证填充后的数据正确
  16. matcher.reset(stringBuilder.toString());
  17. }
  18. String content = stringBuilder.toString();
  19. return content;
  20. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/829784
推荐阅读
相关标签
  

闽ICP备14008679号