Qual è la differenza tra MessageFormat.format
e String.format
in JDK 1.5?differenza tra MessageFormat.format e String.format in jdk1.5?
risposta
String.format è solo una scorciatoia per Formatter, questo è un formattatore "printf-style". Dall'altra parte, MessageFormat utilizza una convenzione di formattazione diversa, come descritto nella documentazione collegata.
Utilizzare la prima "per il layout giustificazione e allineamento, formati comuni per numerico, stringa e data/dati di tempo, e l'uscita specifica locale" e il secondo "per produrre messaggi concatenati in modo indipendente dalla lingua".
Put semplicemente, la differenza principale è nella stringa di formato:
MessageFormat.format()
stringa di formato accetta posizioni argomento (es{0}
,{1}
.). Esempio:"This is year {0}!"
Lo sviluppatore non deve preoccuparsi di tipi di argomenti, perché sono, il più delle volte, riconosciuto e formattato in base alle attuali
Locale
.String.format()
formato stringa accetta argomenti tipo di argomento (ad esempio%d
per i numeri,%s
per le stringhe). Esempio:"This is year %d!"
String.format()
in generale ti dà molto più controllo su come viene visualizzato l'argomento grazie a molte opzioni che è possibile specificare con l'indicatore di tipo. Ad esempio, la stringa di formato"%-6.2f"
specifica di visualizzare un numero in virgola mobile allineato a sinistra con min. larghezza 6 caratteri e precisione di 2 posizioni decimali.
Basta dare un'occhiata a javadoc di entrambi i metodi per scoprire ulteriori dettagli.
grazie mille :) – gokareless
Hai un certo controllo sulla formattazione in MessageFormat.format, ad esempio: "{0, numero, intero}". –