String.format

Java Multithreading
Level 2 , Lektion 6
Verfügbar

„Ich möchte Ihnen auch etwas über die String.format- Methode erzählen .“

„Es ist eine statische Methode der String- Klasse, aber sie ist sehr nützlich. Lassen Sie mich einen Umweg machen.“

„Wenn Sie mehrere Variablen in einer Textzeile anzeigen müssen, wie würden Sie das tun?“

„Welcher Text?“

„Dies zum Beispiel:“

Angesichts der folgenden Variablen:
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
Erforderliche Ausgabe:
User = {name: Bender, age: 12 years, friend: Fry, weight: 200 kg.}

„Ich würde es etwa so machen:“

String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;

System.out.println("User = {name: " + name + ", age: " + age + " years, friend: " + friend + ", weight: " + weight + " kg.}");

„Nicht sehr gut lesbar, oder?“

„Ich denke, es ist okay.“

„Aber wenn Sie lange Variablennamen haben oder Methoden aufrufen müssen, um Daten abzurufen, wäre es nicht sehr gut lesbar:“

System.out.println("User = {name: " + user.getName() + ", age: " + user.getAge() + " years, friend: " + user.getFriends().get(0) + ", weight: " + user.getExtraInformation().getWeight() + " kg.}");

„Nun, wenn das der Fall wäre, dann wäre es ja nicht sehr lesbar.“

„Tatsache ist, dass dies in echten Programmen ständig passiert. Deshalb möchte ich Ihnen zeigen, wie Sie Ihr Leben mit der String.format-Methode vereinfachen können.“

„Bitte sagen Sie mir schnell, was ist das für eine magische Methode?“

„Sie können den obigen Code so schreiben:“

String text = String.format("User = {name: %s, age: %d years, friend: %s, weight: %d kg.}",
user.getName(), user.getAge(), user.getFriends().get(0), user.getExtraInformation().getWeight())

System.out.println(text);

„Der erste Parameter der String.format- Methode ist eine Formatzeichenfolge, die Sonderzeichen (%s, %d) enthält, wo immer wir Werte einfügen möchten.“

„Nach der Formatzeichenfolge übergeben wir die Werte, die die Zeichen %s und %d ersetzen.“

„Wenn wir eine Zeichenfolge einfügen müssen, schreiben wir %s; wenn wir eine Zahl benötigen, dann verwenden wir %d.“

„An einem Beispiel lässt sich das leichter erkennen:“

Beispiel
String s = String.format("a = %d, b = %d, c = %d", 1, 4, 3);
Ergebnis:
s ist gleich „a = 1, b = 4, c = 3“

„Ja, das ist sehr praktisch.“

„Und das geht auch so:“

Beispiel
int a = -1, b = 4, c = 3;
String template;
 if (a < 0)
  template = "Warning! a = %d, b = %d, c = %d";
 else
  template = "a = %d, b = %d, c = %d";

System.out.println(String.format(template, a, b, c) );
Ausgang:
Warning! a = -1, b = 4, c = 3

„Hmm. Das ist eine wirklich nützliche Methode. Danke, Ellie.“

„Wenn Sie andere Datentypen mit der Formatierungsmethode verwenden möchten, finden Sie hier eine hilfreiche Tabelle:“

Symbol Typ
%S Zeichenfolge
%D ganze Zahlen: int, long usw.
%F reelle Zahlen: float, double
%B Boolescher Wert
%C verkohlen
%T Datum
%% Prozentzeichen %

„Tatsächlich haben diese Formatspezifizierer auch ihre eigenen Einstellungen und Untereinstellungen.“

„Aber das reicht aus, um Ihnen den Einstieg zu erleichtern. Falls nicht, finden Sie hier einen Link zur offiziellen Dokumentation:“

Link zu zusätzlichem Material

Kommentare (1)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Anonymous #11363932 Level 41, Germany, Germany
31 Juli 2023
Die tabelle hat link keine kleinen buchstaben was ggf zu verwirrungen führen kann.