StrSubstitutor和StrUtil占位符字符串替换

一、commons-lang包下的StrSubstitutor

StrSubstitutorcommons-lang包提供的一个字符串替换类,整体使用体验还是非常不错的。commons-lang包很多框架都有引用,很容易通过依赖传递到我们项目,所以有时候会出现我们根本没有引用这个包,但是却可以使用他包下的类。

1、使用场景一

public static void main(String[] args) {
    HashMap<String, String> objectObjectHashMap = new HashMap<>();
    objectObjectHashMap.put("name","张三");
    StrSubstitutor strSubstitutor = new StrSubstitutor(objectObjectHashMap);
    // hello在map当中不存在,所以直接原样输出了
    String replace = strSubstitutor.replace("${name}先生,${hello}");
    System.out.println(replace);
}

运行结果:

在这里插入图片描述

2、使用场景二

默认是通过${} 来做字符串替换的,我们可以修改符号。

StrSubstitutor strSubstitutor = new StrSubstitutor(objectObjectHashMap, "%(", ")");
public static void main(String[] args) {
    HashMap<String, String> objectObjectHashMap = new HashMap<>();
    objectObjectHashMap.put("name", "张三");
    StrSubstitutor strSubstitutor = new StrSubstitutor(objectObjectHashMap, "%(", ")");
    // hello在map当中不存在,所以直接原样输出了
    String replace = strSubstitutor.replace("%(name)先生,${hello:'我的 '}");
    System.out.println(replace);
}

运行结果

在这里插入图片描述

二、hutoo包下的StrUtil

再有就是我们也可以通过hutoo工具类当中的StrUtil来完成字符串的替换,hutoo可以说是近期非常火的工具类了,基本上项目都会引用他。

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.20</version>
</dependency>

1、使用场景一

public static void main(String[] args) {
    String str = "你好,{},我的大宝贝,{}";
    String format = StrUtil.format(str, "张三", "哈哈");
    System.out.println(format);
}

运行结果

在这里插入图片描述

2、使用场景二

这个跟上面的StrSubstitutor相比又简单了些,而且都是通过map来映射参数。

public static void main(String[] args) {
   String str = "你好,{name},我的大宝贝,{aaa}";
    HashMap<String, String> objectObjectHashMap = new HashMap<>();
    objectObjectHashMap.put("name","张三");
    String format = StrUtil.format(str, objectObjectHashMap);
    System.out.println(format);
}

运行结果

在这里插入图片描述

3、使用场景三

假如key为null,会原样返回对应的变量

public static void main(String[] args) {
    String str = "你好,{name},我的大宝贝,{aaa}";
    HashMap<String, String> objectObjectHashMap = new HashMap<>();
    objectObjectHashMap.put("name", "张三");
    objectObjectHashMap.put("aaa", null);
    // 默认ignoreNull这个参数就是为true
    String format = StrUtil.format(str, objectObjectHashMap, true);
    System.out.println(format);
}

运行结果:

在这里插入图片描述

设置ignoreNull为false就是忽略null。

 public static void main(String[] args) {
     String str = "你好,{name},我的大宝贝,{aaa}";
     HashMap<String, String> objectObjectHashMap = new HashMap<>();
     objectObjectHashMap.put("name", "张三");
     objectObjectHashMap.put("aaa", null);
     String format = StrUtil.format(str, objectObjectHashMap, false);
     System.out.println(format);
 }

运行结果

在这里插入图片描述

三、原生的三种方式

以上两种都是基于了第三方jar,下面这几种方式都是不需要任何依赖的,都是Java自带的。

public static void main(String[] args) {
    // 方式一
    String format = String.format("你好,%s,我的大宝贝,%s", "张三", "李四");
    System.out.println(format);

    // 方式二
    String format1 = MessageFormat.format("你好,{0},我的大宝贝,{1}", "张三", "李四");
    System.out.println(format1);

    // 方式三
    String replace = "你好,{0},我的大宝贝,{1}".replace("{0}", "张三").replace("{1}", "李四");
    System.out.println(replace);
}

运行结果

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 好的,我来给你写一段示例代码: ``` import cn.hutool.core.util.StrUtil; public class Main { public static void main(String[] args) { String xmlString = "<root><element>要被替换的文本</element></root>"; String oldText = "要被替换的文本"; String newText = "替换后的文本"; String result = StrUtil.replace(xmlString, oldText, newText); System.out.println(result); } } ``` 上面的代码使用了 hutool 工具类中的 StrUtil.replace() 方法来替换字符串中的文本。它接受三个参数:要被操作的字符串,要被替换的旧文本,以及新文本。它会将字符串中所有出现的旧文本都替换成新文本,并返回结果。 注意:上面的代码假设你已经导入了 hutool 的依赖,否则会编译错误。 ### 回答2: Hutool是一个Java工具类库,其中的StrUtil工具类提供了许多方便的字符串处理方法。下面是使用Hutool的StrUtil工具类来实现替换由XML组成的字符串的Java代码示例: ```java import cn.hutool.core.util.StrUtil; public class Main { public static void main(String[] args) { String xmlStr = "<root><name>John</name><age>20</age></root>"; // 原始XML字符串 String replacedStr = StrUtil.replace(xmlStr, "<name>", "<name>Jack"); // 使用replace方法替换字符串 System.out.println("替换前的字符串:" + xmlStr); System.out.println("替换后的字符串:" + replacedStr); } } ``` 在上面的代码中,我们首先导入了Hutool的StrUtil工具类。然后,我们定义了一个字符串`xmlStr`,该字符串是一个由XML标签组成的字符串。接下来,我们使用`StrUtil.replace`方法将`<name>`标签替换为`<name>Jack`,并将替换后的字符串保存在`replacedStr`变量中。最后,我们通过打印语句输出替换前的字符串和替换后的字符串。 运行以上代码,将会输出如下结果: ``` 替换前的字符串:<root><name>John</name><age>20</age></root> 替换后的字符串:<root><name>Jack</name><age>20</age></root> ``` 可以看到,原始的XML字符串中的`<name>`标签已经被成功替换为`<name>Jack`。这就是使用Hutool的StrUtil工具类来实现替换由XML组成的字符串的方法。 ### 回答3: 的XML标签)中指定标签的内容。 import cn.hutool.core.util.StrUtil; public class XmlUtil { public static void main(String[] args) { String xml = "<root><name>小明</name><age>18</age></root>"; // 使用StrUtil.replace方法,将<name>标签中的内容替换为"小红" String replacedXml = StrUtil.replace(xml, "<name>(.*?)</name>", "<name>小红</name>"); System.out.println(replacedXml); } } 在这段代码中,我们首先引入了hutool的StrUtil工具类。然后定义了一个main方法,在该方法中,我们定义了一个String类型的变量xml,并赋值为一个包含XML标签的字符串。 接下来,我们使用StrUtil.replace方法,该方法的作用是将字符串中符合正则表达式的内容进行替换。我们使用了正则表达式"<name>(.*?)</name>"来匹配<name>标签中的内容,将其替换为"<name>小红</name>"。 最后,我们打印输出替换后的字符串。 运行这段代码,输出结果为"<root><name>小红</name><age>18</age></root>",可以看到,字符串中的<name>标签中的内容已经被成功替换为"小红"。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怪 咖@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值