web-dev-qa-db-fra.com

Java - Inclusion de variables dans des chaînes?

Ok, nous devrions tous savoir que vous pouvez inclure des variables dans des chaînes en procédant comme suit:

String string = "A string " + aVariable;

Y a-t-il un moyen de le faire comme:

String string = "A string {aVariable}";

En d'autres termes: Sans avoir à fermer les guillemets et à ajouter des signes plus. C'est très peu attrayant.

96
Gray Adams

Vous pouvez toujours utiliser String.format (....). c'est à dire.,

String string = String.format("A String %s %2d", aStringVar, anIntVar);

Je ne suis pas sûr que cela soit assez attrayant pour vous, mais cela peut être assez pratique. La syntaxe est la même que pour printf et Java.util.Formatter. Je l'ai beaucoup utilisé surtout si je veux afficher des données numériques sous forme de tableau.

105

Ceci s'appelle l'interpolation de chaîne; cela n'existe pas en tant que tel en Java.

Une approche consiste à utiliser String.format:

String string = String.format("A string %s", aVariable);

Une autre approche consiste à utiliser une bibliothèque de modèles telle que Velocity ou FreeMarker .

57
Jacob Mattison

Considérez également Java.text.MessageFormat , qui utilise une syntaxe associée ayant des index d'arguments numériques. Par exemple,

String aVariable = "of ponies";
String string = MessageFormat.format("A string {0}.", aVariable);

résulte en string contenant les éléments suivants:

A string of ponies.

Plus généralement, la classe est utilisée pour sa mise en forme numérique et temporelle. Un exemple de JFreeChart est décrit le formatage de l'étiquette ici ; la classe RCInfo formate le volet d'état d'un jeu.

30
trashgod