在Java中实现字符串的动态替换
比如消息通知,短信发送之类的我们肯定是要用到字符串模版的替换的
要在Java中实现字符串的动态替换,可以使用String.format方法或者MessageFormat类或者三方包。以下是使用这三种方法的示例
使用 String.format,适用于%s的替换
String name = "张三";
String url = "example-url";
String message = String.format("%s邀请你使用里享商业,点击com/%s下载里享商业,开启进一步沟通。", name, url);
System.out.println(message);
使用 MessageFormat,适用于{0}的替换
import java.text.MessageFormat;
String name = "张三";
String url = "example-url";
String message = MessageFormat.format("{0}邀请你使用里享商业,点击com/{1}下载里享商业,开启进一步沟通。", name, url);
System.out.println(message);
第三方库,适用于${name}的替换
引入依赖包commons-text
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.12.0</version>
</dependency>
public static void main(String[] args) {
String template = "${name}邀请你使用里享商业,点击com/${url}下载里享商业,开启进一步沟通。";
String name = "张三";
String url = "example-url";
Map<String, String> valuesMap = new HashMap<>();
valuesMap.put("name", name);
valuesMap.put("url", url);
StringSubstitutor sub = new StringSubstitutor(valuesMap);
String message = sub.replace(template);
System.out.println(message);
}