1 org.apache.commons.text
变量默认前缀是${,后缀是}
1 2 3 4 5
| <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.12.0</version> </dependency>
|
1 2 3 4 5 6 7
| 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分钟内输入有效。
|
修改前缀、后缀
1 2 3 4 5 6 7 8 9
| 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
1 2 3 4 5 6 7 8 9 10
| 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
1 2 3 4
| Object[] params = new Object[]{"1234", "5"}; String msg = MessageFormat.format("验证码:{0},您正在登录管理后台,{1}分钟内输入有效。", params); System.out.println(msg); 验证码:1234,您正在登录管理后台,10分钟内输入有效。
|
4 java.lang.String
1 2
| String s = String.format("My name is %s. I am %d.", "Tom", 18); System.out.println(s);
|