The Java MessageFormat class allows
user to pre-define a string with placeholders and then fill the placeholders
with actual strings later to construct a proper message.
It's all fine if you're used to
numbered placeholders e.g. {0} and {1}.
Apache Commons has a StrSubstitutor
class which allows use of named placeholders.
Although StrSubstitutor is a bit
more verbose, but it helps when you're handling lots of key/value pairs.
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang3.text.StrSubstitutor;
public class MessagePlaceHolder {
public static void main(String[] args) {
Map<String,String> map = new HashMap<String, String>();
map.put("name", "Rajesh");
map.put("email", "rkdixit3@gmail.com");
String format = "Hello
{name}, your email is {email}.";
String message = StrSubstitutor.replace(format,map,"{","}");
System.out.println(message);
}
}
Output:
Hello Rajesh, your email is rkdixit3@gmail.com.