Java 是否有将字符串中的占位符替换为字符串变量的功能

Java Is there a feature for replacing placeholders inside a String with a String variable

我需要将所有硬编码错误日志移动到数据库。一些错误日志的格式为

"xxxxx" + variable + "xxxxxx";

无法更改 table 的结构。我也不能根据位置做一些字符串插入,因为数据库中的值总是可以改变的。

在任何 Java 库或第三方库中是否有一项功能可以让您在字符串值中包含占位符并用变量替换它们。 举个例子,我们可以想到古老的

printf("bla %s %d bla,", var, var2);

或SQL PreparedStatement class

stmt("select * from blah where a = ?"); 

还有'?'被可变内容替换。

任何建议都会有很大帮助。

您可以像这样使用 MessageFormat :

String log = "xxxxx [{0}] xxxxxx";
String variable = "some_string";
String result = MessageFormat.format(log, variable);

JDK 7+ 有 String.format() 我认为你正在寻找