Ok, donc nous devons tous savoir que vous pouvez inclure des variables dans des chaînes en faisant:
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.
String.format()
sont intégrées au langage.Réponses:
Vous pouvez toujours utiliser String.format (....). c'est à dire,
Je ne sais pas si cela vous convient suffisamment, mais cela peut être très 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 tabulaires.
la source
format
est plus attrayante qu'une simple expression de concaténation String. Ce quiformat
prend tout son sens, c'est quand vous devez faire du remplissage, du formatage des nombres, etc.1 + "oops"
), surtout si vous utilisez FindBugs (qui analyse les chaînes de format et les paramètres d'entrée). Et, comme le dit le demandeur, dans de nombreux cas, il est plus lisible. Bien sûr, c'est dommage que laformat
méthode ait été rendue statique, c'était une erreur de conception plutôt stupide.format
rapport avec la chaîne cible? Vous ne suggérez sûrement pas que nous devrions être censés écrire"A String %s %2d".format(aStringVar, anIntVar)
... n'est-ce pas?C'est ce qu'on appelle l'interpolation de chaîne; il n'existe pas en tant que tel en Java.
Une approche consiste à utiliser String.format:
Une autre approche consiste à utiliser une bibliothèque de modèles telle que Velocity ou FreeMarker .
la source
Considérez également
java.text.MessageFormat
, qui utilise une syntaxe associée ayant des index d'arguments numériques. Par exemple,aboutit à
string
contenir les éléments suivants:Plus communément, la classe est utilisée pour sa mise en forme numérique et temporelle. Un exemple de
JFreeChart
formatage d'étiquette est décrit ici ; la classe met enRCInfo
forme le volet d'état d'un jeu.la source
vous pouvez utiliser le format String pour inclure des variables dans des chaînes
J'utilise ce code pour inclure 2 variables dans la chaîne:
la source