Format de message Java
-
Formater le message à l’aide de guillemets doubles en utilisant
MessageFormat
-
Formater le message à l’aide de caractères
Unicode
en utilisantMessageFormat
-
Formater un message à l’aide de séquences d’échappement en utilisant
MessageFormat
-
Formater le message en remplaçant les caractères en utilisant
MessageFormat
Dans ce tutoriel, nous allons apprendre à formater un message à l’aide de la classe Java MessageFormat
fournie par l’API Java. Le formatage est le processus d’insertion dynamique de caractères et de chaînes dans un message et le MessageFormat
nous fournit cette fonctionnalité.
Le MessageFormat
utilise des arguments d’objet pour former une chaîne formatée en utilisant un modèle qui montre où les arguments d’objet sont insérés.
Les arguments de l’objet sont insérés dans le modèle en fonction de la position à laquelle ils sont passés dans les paramètres de l’objet MessageFormat
. Nous allons utiliser la méthode statique format()
de MessageFormat
pour apprendre à formater un message.
Le premier paramètre passé à la méthode format()
est notre modèle suivi d’arguments d’objet basés sur des spécificateurs de chaîne que nous voulons insérer dynamiquement dans notre chaîne. Lors de l’insertion d’un élément dans notre modèle, nous pouvons utiliser certains caractères interprétés différemment par le MessageFormat
, ce qui peut conduire à un résultat différent de celui attendu.
Par exemple, l’utilisation d’un guillemet simple dans une chaîne telle que you're
dans un message formaté à l’aide de MessageFormat
donne la chaîne youre
. Un guillemet simple est utilisé pour désigner une section qui ne sera pas formatée, et notez que le modèle restant de notre message dans l’exemple suivant n’est pas formaté.
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);
}
}
Production:
Hello John, youre turning{1} years old today
Dans les sections suivantes, nous aborderons quatre manières différentes que nous pouvons utiliser pour insérer un guillemet simple dans notre message afin de nous assurer que notre modèle est formaté avec succès.
Formater le message à l’aide de guillemets doubles en utilisant MessageFormat
Pour ajouter un guillemet simple dans un message formaté à l’aide de MessageFormat
, nous devons utiliser deux guillemets simples ''
au lieu d’un guillemet simple '
dans notre chaîne, comme indiqué ci-dessous.
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);
}
}
Production:
Hello John, you're turning 30 years old today
Notez qu’un guillemet simple est inséré après l’ajout de guillemets doubles et que le modèle restant est formaté avec la bonne valeur.
Formater le message à l’aide de caractères Unicode
en utilisant MessageFormat
Chaque caractère a une représentation Unicode. Étant donné que Java peut lire les caractères Unicode, nous pouvons insérer un guillemet simple dans notre chaîne en utilisant une représentation Unicode d’un guillemet simple.
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);
}
}
Production:
Hello John, you're turning 30 years old today
Le caractère Unicode \u2019
ajoute un guillemet simple dans notre chaîne, et le modèle restant de notre message est formaté avec la bonne valeur.
Formater un message à l’aide de séquences d’échappement en utilisant MessageFormat
Cette méthode est similaire à celle utilisant des guillemets doubles mais utilise une séquence d’échappement \
, qui est un caractère avec une barre oblique inverse devant pour insérer une séquence de caractères. Nous pouvons insérer un guillemet simple en insérant deux séquences d’échappement de guillemets dans notre modèle, comme indiqué ci-dessous.
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);
}
}
Production:
Hello John, you're turning 30 years old today
Formater le message en remplaçant les caractères en utilisant MessageFormat
Puisque nous travaillons avec des chaînes, nous pouvons laisser notre chaîne rester la même et utiliser la méthode replaceAll()
pour remplacer le guillemet simple par un guillemet double qui ajoute finalement un guillemet simple dans notre chaîne.
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);
}
}
Production:
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