Discuss / Java / 作业

作业

Topic source

云外方天

#1 Created at ... [Delete] [Delete and Lock User]
package com.test.regex;

import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author ygr
 * @description 正则表达式练习
 * @date 2021/10/29
 */
public class NormalRole {
    public static void main(String[] args) {
        //设置模板
        String str = "Hello, ${name}! You are learning ${lang}!";
        //设置参数
        Map<String, String> hashMap = new HashMap<String, String>() {
            {
                put("name", "Bob");
                put("lang", "java");
            }
        };
        String engine = engine(hashMap, str);
        System.out.println(engine);

    }

    /**
     * 模板引擎
     * @params map 
     * @params engineStr 
     * @return java.lang.String
     */
    public static String engine(Map<String, String> map, String engineStr) {
        String regex = "\\$\\{(\\w+)\\}";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(engineStr);
        while (matcher.find()) {
            for (String key : map.keySet()) {
                //map中的key与模板中的占位符相同时,替换key的value
                if (key.equals(matcher.group(1))) {
                    engineStr = engineStr.replaceFirst(regex, map.get(key)); //replaceFirst(),替换匹配到打第一个选项
                }
            }
        }
        return engineStr;
    }
}


  • 1

Reply