Parameterized Strings in Java

java

Solution

`String.format()`

Since Java 5, you can use `String.format` to parametrize Strings. Example:

String fs;
fs = String.format("The value of the float " +
                   "variable is %f, while " +
                   "the value of the " + 
                   "integer variable is %d, " +
                   " and the string is %s",
                   floatVar, intVar, stringVar);

See http://docs.oracle.com/javase/tutorial/java/data/strings.html

Alternatively, you could just create a wrapper for the `String` to do something more fancy.

`MessageFormat`

Per the comment by Max and answer by Affe, you can localize your parameterized String with the `MessageFormat` class.

Problem

I find myself very frequently wanting to write reusable strings with parameter placeholders in them, almost exactly like what you'd find in an SQL `PreparedStatement`. Here's an example: ``` private static final String warning = "You requested ? but were assigned ? instead."; public void addWarning(Element E, String requested, String actual){ warning.addParam(0, requested); warning.addParam(1, actual); e.setText(warning); //warning.reset() or something, I haven't sorted that out yet. } ``` Does something like this exist already in Java? Or, is there a better way to address something like this? What I'm really asking: is this ideal?

Original source