java - diferencia entre MessageFormat.format y String.format en jdk1.5?
messageformat java 8 (2)
En pocas palabras, la principal diferencia está en la cadena de formato:
MessageFormat.format()
cadena de formatoMessageFormat.format()
acepta posiciones de argumento (por ejemplo,{0}
,{1}
). Ejemplo:"This is year {0}!"
El desarrollador no tiene que preocuparse por los tipos de argumentos, ya que, en la mayoría de los casos, son reconocidos y formados de acuerdo con la
Locale
actual.String.format()
cadena de formatoString.format()
acepta especificadores de tipo de argumento (por ejemplo,%d
para números,%s
para cadenas). Ejemplo:"This is year %d!"
String.format()
generalmente le da mucho más control sobre cómo se muestra el argumento gracias a muchas opciones que puede especificar con el especificador de tipo. Por ejemplo, la cadena de formato"%-6.2f"
especifica que se muestre un número de punto flotante alineado a la izquierda con min. Ancho 6 caracteres y precisión de 2 decimales.
Eche un vistazo al javadoc de ambos métodos para obtener más detalles.
¿Cuál es la diferencia entre MessageFormat.format
y String.format
en JDK 1.5?
String.format es solo un acceso directo al Formatter , este es un formateador "estilo printf". Por otro lado, MessageFormat utiliza una convención de formato diferente, como se describe en la documentación vinculada.
Use el primer "para la justificación y alineación del diseño, los formatos comunes para datos numéricos, de cadena y de fecha / hora, y la salida específica de la configuración regional" y el segundo "para producir mensajes concatenados de manera neutral para el idioma" .