Java 模板变量替换(字符串、占位符替换)

1、org.apache.commons.text

变量默认前缀是${,后缀是}

<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.12</version>
</dependency>

Map valuesMap = new HashMap();
valuesMap.put("code", 1234);
String templateString = "验证码:${code},您正在登录管理后台,5分钟内输入有效。";
StringSubstitutor sub = new StringSubstitutor(valuesMap);
String content= sub.replace(templateString);
System.out.println(content);

验证码:1234,您正在登录管理后台,5分钟内输入有效。

修改前缀、后缀

Map valuesMap = new HashMap();
valuesMap.put("code", 1234);
String templateString = "验证码:[code],您正在登录管理后台,5分钟内输入有效。";
StringSubstitutor sub = new StringSubstitutor(valuesMap);
//修改前缀、后缀
sub.setVariablePrefix("[");
sub.setVariableSuffix("]");
String content= sub.replace(templateString);
System.out.println(content);

2、org.springframework.expression

String smsTemplate = "验证码:#{[code]},您正在登录管理后台,5分钟内输入有效。";
Map<String, Object> params = new HashMap<>();
params.put("code", 12345);;

ExpressionParser parser = new SpelExpressionParser();
TemplateParserContext parserContext = new TemplateParserContext();
String content = parser.parseExpression(smsTemplate,parserContext).getValue(params, String.class);

System.out.println(content);

验证码:12345,您正在登录管理后台,5分钟内输入有效。

ExpressionParser是简单的用java编写的表达式解析器,官方文档:

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html

3、java.text.MessageFormat

Object[] params = new Object[]{"1234", "5"};
String msg = MessageFormat.format("验证码:{0},您正在登录管理后台,{1}分钟内输入有效。", params);
System.out.println(msg);

验证码:1234,您正在登录管理后台,10分钟内输入有效。

4、java.lang.String

String s = String.format("My name is %s. I am %d.", "Tom", 18);
System.out.println(s);
转换符详细说明示例
%s字符串类型“喜欢请收藏”
%c字符类型'm'
%b布尔类型true
%d整数类型(十进制)88
%x整数类型(十六进制)FF
%o整数类型(八进制)77
%f浮点类型8.888
%a十六进制浮点类型FF.35AE
%e指数类型9.38e+5
%g通用浮点类型(f和e类型中较短的)不举例(基本不用)
%h散列码不举例(基本不用)
%%百分比类型%(%特殊字符%%才能显示%)
%n换行符不举例(基本不用)
%tx日期与时间类型(x代表不同的日期与时间转换符)不举例(基本不用)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值