Format de message Java

David Mbochi Njonge 12 octobre 2023
  1. Formater le message à l’aide de guillemets doubles en utilisant MessageFormat
  2. Formater le message à l’aide de caractères Unicode en utilisant MessageFormat
  3. Formater un message à l’aide de séquences d’échappement en utilisant MessageFormat
  4. Formater le message en remplaçant les caractères en utilisant MessageFormat
Format de message Java

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 Mbochi Njonge avatar David Mbochi Njonge avatar

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