gpt4 book ai didi

java - Apache StringSubstitutor - 用空字符串替换不匹配的变量

转载 作者:行者123 更新时间:2023-12-02 01:35:51 30 4
gpt4 key购买 nike

先决条件

我有一个看起来像这样的字符串:String myText= "这是一个包含 ${firstParameter} 和 ${secondParameter} 的 foo 文本"

代码如下所示:

Map<String, Object> textParameters=new Hashmap<String,String>();
textParameters.put("firstParameter", "Hello World");
StringSubstitutor substitutor = new StringSubstitutor(textParameters);
String replacedText = substitutor.replace(myText)

replacedText 将是:这是一个包含 Hello World 和 ${secondParameter} 的 foo 文本

问题

在被替换的字符串中,未提供 secondParameter 参数,因此声明被打印出来。

我想要实现什么?

如果参数未映射,那么我想通过用空字符串替换它来隐藏它的声明。

在这个例子中我想实现这个:This is a foo text containing Hello World and

问题

如何使用 StringUtils/Stringbuilder 实现上述结果?我应该改用正则表达式吗?

最佳答案

您可以通过向占位符附加 :- 来为占位符提供默认值来实现此目的。 (例如 ${secondParameter:-my default value})。

在您的情况下,如果未设置键,您也可以将其留空以隐藏占位符。

String myText = "This is a foo text containing ${firstParameter} and ${secondParameter:-}";
Map<String, Object> textParameters = new HashMap<>();
textParameters.put("firstParameter", "Hello World");
StringSubstitutor substitutor = new StringSubstitutor(textParameters);
String replacedText = substitutor.replace(myText);
System.out.println(replacedText);
// Prints "This is a foo text containing Hello World and "

关于java - Apache StringSubstitutor - 用空字符串替换不匹配的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72403340/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com