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

Java中如何替换用作邮件内容的HTML字符串常量中的占位符?

解决方案

直接使用JDK自带的String.format()静态方法即可完成占位符替换,该方法天生支持%s(字符串占位符)、%d(整数占位符)的匹配规则,你只需要按照模板中占位符的先后顺序传入对应参数即可。

修改后的代码示例

你只需要调整类A中test()方法的逻辑,对B.DESCRIPTION做格式化处理后再使用:

public class A { 
 
    String food = "briyani";
    int age = 18;
    String name;
    String description;
    
    A(String name,String description){
        this.name=name;
        this.description =description;
    }

    public A() {}
    
    public static void main(String[] args) {
        A a = new A();
        a.test();
        
    }

    private void test() {
        // 按占位符顺序传参:第一个%s对应food,第二个%d对应age
        String processedDescription = String.format(B.DESCRIPTION, food, age);
        A a = new A("yogesh", processedDescription);
        // 输出可验证替换后的完整HTML内容
        System.out.println(processedDescription);
    }
}

public class B {
    public static String DESCRIPTION = "<!DOCTYPE html><html>" +
            "<br>My name is yogesh. My fav food is %s. And my age is %d "+
            "</html>";
}

注意事项

  • 占位符和传入参数的顺序、类型必须严格对应:如果%d位置传入字符串、或者参数数量少于占位符数量,都会抛出格式转换异常
  • 如果后续模板需要支持更复杂的动态内容规则,也可以选择MessageFormat类(占位符为{0}、{1}这类索引形式),当前场景下String.format是成本最低的实现
  • 替换完成的HTML作为邮件内容发送时,需要将邮件的内容类型设置为text/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 20:57:01