StrSubstitutor from Apache Commons Lang may be used for string formatting with named placeholders:
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-text</artifactId>
    <version>1.1</version>
</dependency>
https://commons.apache.org/proper/commons-lang/javadocs/api-3.4/org/apache/commons/lang3/text/StrSubstitutor.html :
Substitutes variables within a string by values.
This class takes a piece of text and substitutes all the variables
  within it. The default definition of a variable is ${variableName}.
  The prefix and suffix can be changed via constructors and set methods.
Variable values are typically resolved from a map, but could also be
  resolved from system properties, or by supplying a custom variable
  resolver.
Example:
String template = "Hi ${name}! Your number is ${number}";
Map<String, String> data = new HashMap<String, String>();
data.put("name", "John");
data.put("number", "1");
String formattedString = StrSubstitutor.replace(template, data);