Formato de mensaje de Java

David Mbochi Njonge 12 octubre 2023
  1. Formatee el mensaje usando comillas dobles aprovechando MessageFormat
  2. Formato de mensaje utilizando caracteres Unicode aprovechando MessageFormat
  3. Dar formato a un mensaje utilizando secuencias de escape aprovechando MessageFormat
  4. Formatee el mensaje reemplazando los caracteres aprovechando MessageFormat
Formato de mensaje de Java

En este tutorial, aprenderemos cómo formatear un mensaje utilizando la clase Java MessageFormat proporcionada por la API de Java. El formateo es el proceso de insertar caracteres y cadenas dinámicamente a un mensaje y el MessageFormat nos proporciona esta funcionalidad.

El MessageFormat usa argumentos de objeto para formar una cadena formateada usando un patrón que muestra dónde se insertan los argumentos de objeto.

Los argumentos del objeto se insertan en el patrón en función de la posición en la que se pasan en los parámetros del objeto MessageFormat. Usaremos el método estático format() de MessageFormat para aprender a formatear un mensaje.

El primer parámetro pasado al método format() es nuestro patrón seguido de argumentos de objeto basados ​​en especificadores de cadena que queremos insertar en nuestra cadena dinámicamente. Al insertar un elemento en nuestro patrón, podemos usar ciertos caracteres interpretados de manera diferente por el MessageFormat, lo que puede conducir a un resultado diferente al esperado.

Por ejemplo, el uso de una comilla simple en una cadena como you're dentro de un mensaje que se está formateando con MessageFormat da como resultado la cadena youre. Se usa una comilla simple para indicar una sección que no se formateará y tenga en cuenta que el patrón restante de nuestro mensaje en el siguiente ejemplo no tiene formato.

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);
  }
}

Producción :

Hello John, youre turning {1} years old today

En las siguientes secciones, cubriremos cuatro formas diferentes que podemos usar para insertar una comilla simple en nuestro mensaje para asegurarnos de que nuestro patrón tenga el formato correcto.

Formatee el mensaje usando comillas dobles aprovechando MessageFormat

Para agregar una comilla simple en un mensaje que se está formateando usando MessageFormat, debemos usar dos comillas simples '' en lugar de una comilla simple ' en nuestra cadena como se muestra a continuación.

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);
  }
}

Producción :

Hello John, you're turning 30 years old today

Tenga en cuenta que se inserta una comilla simple después de agregar comillas dobles, y el patrón restante se formatea con el valor correcto.

Formato de mensaje utilizando caracteres Unicode aprovechando MessageFormat

Cada carácter tiene una representación Unicode. Dado que Java puede leer los caracteres Unicode, podemos insertar una comilla simple en nuestra cadena usando una representación Unicode de una comilla 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);
  }
}

Producción :

Hello John, you're turning 30 years old today

El carácter Unicode \u2019 agrega una comilla simple en nuestra cadena, y el patrón restante de nuestro mensaje se formatea con el valor correcto.

Dar formato a un mensaje utilizando secuencias de escape aprovechando MessageFormat

Este método es similar al que usa comillas dobles pero usa una secuencia de escape \, que es un carácter con una barra invertida al frente para insertar una secuencia de caracteres. Podemos insertar una comilla simple insertando dos secuencias de escape de comillas en nuestro patrón, como se muestra a continuación.

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);
  }
}

Producción :

Hello John, you're turning 30 years old today

Formatee el mensaje reemplazando los caracteres aprovechando MessageFormat

Como estamos trabajando con cadenas, podemos dejar que nuestra cadena permanezca igual y usar el método replaceAll() para reemplazar las comillas simples con una comilla doble que finalmente agrega una comilla simple en nuestra cadena.

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);
  }
}

Producción :

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