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

这里提供了几种方法供大家选择

1、org.springframework.expression

需要引入依赖

org.apache.commons

commons-text

1.8

代码:

String phoneNo = "13812341234";

String smsTemplate = "验证码:#{[code]},您正在登录管理后台,5分钟内输入有效。";

Map params = new HashMap<>();

params.put("code", 1234);;

ExpressionParser parser = new SpelExpressionParser();

TemplateParserContext parserContext = new TemplateParserContext();

String content = parser.parseExpression(smsTemplate,parserContext).getValue(params, String.class);

System.out.println(content);

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

2、org.apache.commons.text

代码:

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);

可以为变量设置默认值,格式为:${undefined.number:-1234567890},其中 undefined.number是变量名,

:-

是分隔符,1234567890是默认值。

代码:

Map valuesMap = new HashMap();

//valuesMap.put("code", 1234);

String templateString = "验证码:${code:-0000},您正在登录管理后台,5分钟内输入有效。";

StringSubstitutor sub = new StringSubstitutor(valuesMap);

String content= sub.replace(templateString);

System.out.println(content);

3、java.text.MessageFormat

代码:

Object[] params = new Object[]{"hello", "!"};

String msg = MessageFormat.format("{0} world {1}", params);

4、java.lang.String

代码:

String s = String.format("My name is %s. I am %d.", "Andy", 18);

常用的占位符含义:

转换符

详细说明

示例

%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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值