替换string中的变量 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

替换string中的变量

有一个模板,例如:
亲爱的用户${name},你好,上次登录时间为${time}要把这个模板中的变量替换为实际值,参数为一个json串,
{"name":11,"time":2014-10-21}用java 如何实现呢?

展开
收起
蛮大人123 2016-02-28 17:44:06 2759 0
3 条回答
写回答
取消 提交回答
  • 使用正则匹配到string中的变量,然后进行替换 或者也可以使用框架,比如volecity自带替换变量等
    2019-07-17 18:49:52
    赞同 展开评论 打赏
  • str.replace(var,value),str是原始的String,var是变量,value是你需要替换成的值
    2019-07-17 18:49:52
    赞同 展开评论 打赏
  • 我说我不帅他们就打我,还说我虚伪
    static final String jsonStr = "{\"name\":\"11\",\"time\":\"2014-10-21\"}";
    static final String template = "亲爱的用户${name},你好,上次登录时间为${time}";
    
    static String generateWelcome(String jsonStr,String template){
        Gson gson = new Gson();
        HashMap jsonMap = gson.fromJson(jsonStr, HashMap.class);
        for (Object s : jsonMap.keySet()) {
            template = template.replaceAll("\\$\\{".concat(s.toString()).concat("\\}")
                    , jsonMap.get(s.toString()).toString());
        }
        return template;
    }
    
    public static void main(String[] args) throws IOException {
        System.out.println(generateWelcome(jsonStr,template));
    }

    需要Gson:

      <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.3.1</version>
        </dependency>
    2019-07-17 18:49:52
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
相关产品:
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载
相关实验场景
更多