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.
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.
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 .
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.