java中对表达式{index}的替换

/**
 * @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()));
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java正则表达式是一种用于匹配、查找和替换文本的强大工具。它可以用于验证输入是否符合特定的格式、从文本提取信息、以及将文本的某些内容替换成其他内容。 下面是一些示例代码,说明如何使用Java正则表达式进行匹配、替换和查找操作: 1. 匹配操作: ```java String input = "This is a test string."; String pattern = "test"; // 创建 Pattern 对象 Pattern p = Pattern.compile(pattern); // 执行匹配操作 Matcher m = p.matcher(input); if (m.find()) { System.out.println("Found match at index " + m.start() + " to " + m.end()); } else { System.out.println("No match found."); } ``` 这段代码首先定义了一个输入字符串和一个正则表达式模式,然后创建了一个 Pattern 对象,并使用该对象对输入字符串进行匹配操作。如果找到了匹配项,则输出其开始和结束位置;否则,输出未找到匹配项的提示信息。 2. 替换操作: ```java String input = "This is a test string."; String pattern = "test"; String replacement = "example"; // 执行替换操作 String output = input.replaceAll(pattern, replacement); System.out.println("Output string: " + output); ``` 这段代码使用了 String 类的 replaceAll() 方法,将输入字符串所有匹配正则表达式模式的部分替换成指定的字符串。替换后的字符串将被输出到控制台。 3. 查找操作: ```java String input = "This is a test string."; String pattern = "\\w+"; // 创建 Pattern 对象 Pattern p = Pattern.compile(pattern); // 执行查找操作 Matcher m = p.matcher(input); while (m.find()) { System.out.println("Found match: " + m.group()); } ``` 这段代码使用了一个正则表达式模式,该模式匹配一个或多个字母、数字或下划线字符。然后,它创建了一个 Pattern 对象,并使用该对象对输入字符串进行查找操作。如果找到了匹配项,则输出其内容;否则,继续查找下一个匹配项。这里使用了 Matcher 类的 find() 方法来查找所有匹配项。 以上是Java正则表达式的一些基本用法,可以根据具体需求进行调整和扩展。通过学习Java正则表达式,我们可以更轻松地处理文本数据,并快速准确地完成各种文本处理任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值