Java Nachrichtenformat
-
Formatieren Sie die Nachricht mit doppelten Anführungszeichen und nutzen Sie
MessageFormat
-
Nachricht mit
Unicode
-Zeichen formatieren undMessageFormat
nutzen -
Nachricht mit Escape-Sequenzen formatieren, die
MessageFormat
nutzen -
Nachricht formatieren durch Ersetzen von Zeichen mit Hilfe von
MessageFormat
In diesem Tutorial lernen wir, wie man eine Nachricht mit der Java-Klasse MessageFormat
formatiert, die von der Java-API bereitgestellt wird. Formatieren ist der Vorgang des dynamischen Einfügens von Zeichen und Zeichenfolgen in eine Nachricht, und das MessageFormat
bietet uns diese Funktionalität.
Das MessageFormat
verwendet Objektargumente, um eine formatierte Zeichenfolge mit einem Muster zu bilden, das zeigt, wo die Objektargumente eingefügt werden.
Die Objektargumente werden basierend auf der Position, an der sie in den Objektparametern MessageFormat
übergeben werden, in das Muster eingefügt. Wir werden die statische format()
-Methode von MessageFormat
verwenden, um zu lernen, wie man eine Nachricht formatiert.
Der erste Parameter, der an die format()
-Methode übergeben wird, ist unser Muster, gefolgt von Objektargumenten, die auf String-Bezeichnern basieren, die wir dynamisch in unseren String einfügen möchten. Beim Einfügen eines Elements in unser Muster verwenden wir möglicherweise bestimmte Zeichen, die vom MessageFormat
anders interpretiert werden, was zu einem anderen Ergebnis als erwartet führen kann.
Die Verwendung eines einfachen Anführungszeichens in einer Zeichenfolge wie you're
innerhalb einer Nachricht, die mit dem MessageFormat
formatiert wird, ergibt beispielsweise die Zeichenfolge youre
. Ein einfaches Anführungszeichen wird verwendet, um einen Abschnitt zu kennzeichnen, der nicht formatiert wird, und beachten Sie, dass das verbleibende Muster unserer Nachricht im folgenden Beispiel nicht formatiert ist.
import java.text.MessageFormat;
public class FormatString {
public static void main(String[] args) {
String name = "John";
long age = 30;
String message =
MessageFormat.format("Hello {0}, you're turning {1} years old today", name, age);
System.out.println(message);
}
}
Ausgabe:
Hello John, youre turning {1} years old today
In den nächsten Abschnitten werden wir vier verschiedene Möglichkeiten behandeln, mit denen wir ein einfaches Anführungszeichen in unsere Nachricht einfügen können, um sicherzustellen, dass unser Muster erfolgreich formatiert wird.
Formatieren Sie die Nachricht mit doppelten Anführungszeichen und nutzen Sie MessageFormat
Um ein einfaches Anführungszeichen in eine Nachricht einzufügen, die mit MessageFormat
formatiert wird, sollten wir zwei einfache Anführungszeichen ''
anstelle von einfachen Anführungszeichen '
in unserer Zeichenfolge verwenden, wie unten gezeigt.
import java.text.MessageFormat;
public class FormatString {
public static void main(String[] args) {
String name = "John";
long age = 30;
String message =
MessageFormat.format("Hello {0}, you''re turning {1} years old today", name, age);
System.out.println(message);
}
}
Ausgabe:
Hello John, you're turning 30 years old today
Beachten Sie, dass nach dem Hinzufügen von doppelten Anführungszeichen ein einfaches Anführungszeichen eingefügt wird und das verbleibende Muster mit dem richtigen Wert formatiert wird.
Nachricht mit Unicode
-Zeichen formatieren und MessageFormat
nutzen
Jedes Zeichen hat eine Unicode-Darstellung. Da Java die Unicode-Zeichen lesen kann, können wir ein einfaches Anführungszeichen in unseren String einfügen, indem wir eine Unicode-Darstellung eines einfachen Anführungszeichens verwenden.
import java.text.MessageFormat;
public class FormatString {
public static void main(String[] args) {
String name = "John";
long age = 30;
String message =
MessageFormat.format("Hello {0}, you\u2019re turning {1} years old today", name, age);
System.out.println(message);
}
}
Ausgabe:
Hello John, you're turning 30 years old today
Das Unicode-Zeichen \u2019
fügt unserer Zeichenfolge ein einfaches Anführungszeichen hinzu, und das verbleibende Muster unserer Nachricht wird mit dem richtigen Wert formatiert.
Nachricht mit Escape-Sequenzen formatieren, die MessageFormat
nutzen
Diese Methode ähnelt der mit doppelten Anführungszeichen, verwendet jedoch eine Escape-Sequenz \
, die ein Zeichen mit einem vorangestellten Backslash ist, um eine Zeichenfolge einzufügen. Wir können ein einfaches Anführungszeichen einfügen, indem wir zwei Anführungszeichen-Escape-Sequenzen in unser Muster einfügen, wie unten gezeigt.
import java.text.MessageFormat;
public class FormatString {
public static void main(String[] args) {
String name = "John";
long age = 30;
String message =
MessageFormat.format("Hello {0}, you\'\'re turning {1} years old today", name, age);
System.out.println(message);
}
}
Ausgabe:
Hello John, you're turning 30 years old today
Nachricht formatieren durch Ersetzen von Zeichen mit Hilfe von MessageFormat
Da wir mit Strings arbeiten, können wir unseren String gleich bleiben lassen und mit der Methode replaceAll()
das einfache Anführungszeichen durch ein doppeltes Anführungszeichen ersetzen, das schließlich ein einfaches Anführungszeichen in unseren String einfügt.
import java.text.MessageFormat;
public class FormatString {
public static void main(String[] args) {
String name = "John";
long age = 30;
String message = MessageFormat.format(
"Hello {0}, you're turning {1} years old today".replaceAll("'", "''"), name, age);
System.out.println(message);
}
}
Ausgabe:
Hello John, you're turning 30 years old today
David is a back end developer with a major in computer science. He loves to solve problems using technology, learning new things, and making new friends. David is currently a technical writer who enjoys making hard concepts easier for other developers to understand and his work has been published on multiple sites.
LinkedIn GitHub