java - 替换string中的变量
ringa_lee
ringa_lee 2017-04-17 13:07:20
[Java讨论组]

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

ringa_lee
ringa_lee

ringa_lee

全部回复(3)
伊谢尔伦
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>
高洛峰

如果自己实现大概要这么搞吧

  1. JSON转成map
  2. 遍历keys
  3. str.replace("${" + key + "}", map.get(key));
巴扎黑

如果是复杂的内容直接可以上模板组件了 不过一句话用velocity有点不值 话说这么简单的东西字符串拼接都做的出来,,

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号