Ok, wir sollten alle wissen, dass Sie Variablen in Zeichenfolgen einfügen können, indem Sie Folgendes tun:
String string = "A string " + aVariable;
Gibt es eine Möglichkeit, dies so zu tun:
String string = "A string {aVariable}";
Mit anderen Worten: Ohne die Anführungszeichen schließen und Pluszeichen hinzufügen zu müssen. Es ist sehr unattraktiv.
String.format()
in die Sprache integriert sind.Antworten:
Sie können immer String.format (....) verwenden. dh
Ich bin mir nicht sicher, ob das für Sie attraktiv genug ist, aber es kann sehr praktisch sein. Die Syntax ist dieselbe wie für printf und java.util.Formatter. Ich habe es besonders oft verwendet, wenn ich tabellarische numerische Daten anzeigen möchte.
quelle
format
attraktiver es ist als ein einfacher String-Verkettungsausdruck. Das Besondereformat
ist, wenn Sie Auffüllen, Formatieren von Zahlen usw. durchführen müssen.1 + "oops"
) zu vermeiden , insbesondere wenn Sie FindBugs verwenden (die Formatzeichenfolgen und Eingabeparameter analysieren). Und wie der Fragesteller sagt, ist es in vielen Fällen besser lesbar. Natürlich ist es eine Schande, dass dieformat
Methode statisch gemacht wurde, das war ein ziemlich dummer Designfehler.format
sich das auf die Zielzeichenfolge beziehen? Sicherlich schlagen Sie nicht vor, dass von uns erwartet werden sollte, dass wir schreiben"A String %s %2d".format(aStringVar, anIntVar)
... oder?Dies wird als String-Interpolation bezeichnet. es existiert nicht als solches in Java.
Ein Ansatz ist die Verwendung von String.format:
Ein anderer Ansatz ist die Verwendung einer Vorlagenbibliothek wie Velocity oder FreeMarker .
quelle
Berücksichtigen Sie auch
java.text.MessageFormat
, dass eine verwandte Syntax mit numerischen Argumentindizes verwendet wird. Beispielsweise,führt dazu
string
, dass Folgendes enthalten ist:Üblicherweise wird die Klasse für ihre numerische und zeitliche Formatierung verwendet. Ein Beispiel für die
JFreeChart
Formatierung von Etiketten wird hier beschrieben . Die KlasseRCInfo
formatiert den Statusbereich eines Spiels.quelle
Sie können das String-Format verwenden, um Variablen in Strings einzuschließen
Ich benutze diesen Code, um 2 Variablen in die Zeichenfolge aufzunehmen:
quelle