/** * @Author: ZhangPengfei * @Date: 2021/11/17 10:36 上午 */ public class TemplateUtils { public static final String DEF_REGEX = "\\{(\\d+)\\}"; public static String render(String template, Object[] args) { return render(template, args, DEF_REGEX); } //args中参数为需要按照下标替换的参数 public static String render(String template, Object[] args, String regex) { if (StringUtils.isBlank(template)) { return ""; } if (StringUtils.isBlank(regex)) { return template; } if (args == null || args.length == 0) { return template; } try { StringBuffer sb = new StringBuffer(); Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(template); while (matcher.find()) { int index =Integer.parseInt(matcher.group(1)); if (args.length - 1 < index) { continue; } matcher.appendReplacement(sb, String.valueOf(args[index])); } matcher.appendTail(sb); return sb.toString(); } catch (Exception e) { e.printStackTrace(); } return template; } public static void main(String args[]) { String template = "{你好}<{HTML}您提现{2}元至尾号{1}的请求失败,您可以重新提交提款申请。>"; List<Object> list = new ArrayList<>(); list.add(200); list.add("0934"); System.out.println(render(template, list.toArray())); }
java中对表达式{index}的替换
最新推荐文章于 2024-04-14 18:38:34 发布