Java是否存在使用String变量替换String内的占位符的功能

时间:2017-12-04 18:09:05

标签: java string printf apache-stringutils

我需要将所有硬编码的错误日志移动到DB。某些错误日志的格式为

"xxxxx" + variable + "xxxxxx";

无法更改表格的结构。我也不能根据位置执行一些String插入,因为DB中的值总是可以更改。

在任何Java库或第三方库中是否有一个功能,您可以在String值中包含占位符,并将它们替换为变量。 举一个例子,我们可以想到好的旧的

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

或SQL PreparedStatement类

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

和'?'被可变内容取代。

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

2 个答案:

答案 0 :(得分:2)

您可以像这样使用MessageFormat

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

答案 1 :(得分:2)

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