Formato de mensaje de Java
-
Formatee el mensaje usando comillas dobles aprovechando
MessageFormat
-
Formato de mensaje utilizando caracteres
Unicode
aprovechandoMessageFormat
-
Dar formato a un mensaje utilizando secuencias de escape aprovechando
MessageFormat
-
Formatee el mensaje reemplazando los caracteres aprovechando
MessageFormat
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 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