You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java运行时跨类替换字符串占位符及HTML邮件参数填充方法

问题1:第一种类B下划线占位符的跨类替换方案

第一种类B的静态字符串使用固定的______作为占位符,可直接通过String类的替换方法实现填充,由于B.DESCRIPTION是public static修饰的公共静态属性,跨类可直接访问。
修改后A类的test()方法示例:

private void test() {
    String template = B.DESCRIPTION;
    // 按顺序替换两个下划线占位符,分别填入当前A实例的food、age属性
    String filledContent = template.replaceFirst("______", this.food)
                                   .replaceFirst("______", String.valueOf(this.age));
    A a = new A("yogesh", filledContent);
    System.out.println(filledContent);
}

如果要避免多次调用替换方法,也可以先将B类的占位符替换为标准格式化占位符再一次性填充,操作逻辑一致。


问题2:第二种类B格式化占位符的填充方案

第二种类B的HTML模板使用Java标准格式化占位符,%s对应字符串类型参数,%d对应整数类型参数,直接调用String.format()方法按占位符顺序传入参数即可,填充后的字符串可直接作为邮件HTML内容使用。
修改后A类的test()方法示例:

private void test() {
    // 参数顺序需和占位符顺序一一对应:第一个%s匹配food,第二个%d匹配age
    String htmlMailContent = String.format(B.DESCRIPTION, this.food, this.age);
    A a = new A("yogesh", htmlMailContent);
    System.out.println(htmlMailContent);
}

如果模板中存在用户输入的动态内容,建议额外对特殊字符(<、>、&等)做HTML转义处理,避免出现注入风险。


内容的提问来源于stack exchange,提问作者yogesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 19:09:04