English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Il metodo String format() di Java restituisce una stringa formattata in base ai parametri passati.
La sintassi del metodo String format() è:
String.format(String format, Object... args)
Attenzione:
format() è un metodo statico. Utilizziamo il nome della classe String per chiamare il metodo format().
Nello stesso codice, ... indica che è possibile passare più oggetti a format().
format - Stringa di formattazione
args - 0 o più parametri
Restituisce una stringa formattata
class Main { public static void main(String[] args) { String language = "Java"; int number = 30; String result; // Formatta l'oggetto in una stringa result = String.format("Language: %s", language); System.out.println(result); // Lingua: Java // Formatta il numero in un numero esadecimale result = String.format("Numero esadecimale: %x", number); // 1e System.out.println(result); // Numero esadecimale: 1e {} {}
Nella seguente programma, presta attenzione al codice
result = String.format("Language: %s", language);
Questo "Language: %s" è unStringa di formattazione.
Sostituisci %s nella stringa di formattazione con il contenuto di language. %s è un convenzione di formattazione.
Analogamente, %x viene sostituito con il valore esadecimale di number in String.format("Number: %x", number).
Di seguito sono riportati i convenzioni di formattazione più comuni:
Convenzione | Descrizione |
---|---|
%b, %B | Secondo il parametro "true" o "false" |
%s, %S | Una stringa |
%c, %C | Carattere Unicode |
%d | Intero decimale (usato solo per interi) |
%o | Intero ottale (usato solo per interi) |
%x, %X | Intero esadecimale (usato solo per interi) |
%e, %E | Per la notazione scientifica (usati per numeri a virgola mobile) |
%f | Per numeri decimali (usati per numeri a virgola mobile) |
class Main { public static void main(String[] args) { int n1 = 47; float n2 = 35.864f; double n3 = 44534345.76d; //Formattazione come numero ottale System.out.println(String.format("Ottale di n1: %o", n1)); // 57 //Formattazione come numero esadecimale System.out.println(String.format("Esadecimale di n1: %x", n1)); // 2f System.out.println(String.format("Esadecimale di n1: %X", n1)); // 2F //Formattazione in stringa System.out.println(String.format("n1 come stringa: %s", n1)); // 47 System.out.println(String.format("n2 come stringa: %s", n2)); // 35.864 //Formato scientifico System.out.println(String.format("n3 notazione scientifica: %g", n3)); // 4.45343e+07 {} {}
Risultato di output
Ottale di n1: 57 Esadecimale di n1: 2f Esadecimale di n1: 2F n1 come stringa: 47 n2 come stringa: 35.864 n3 notazione scientifica: 4.45343e+07
Puoi usare più format specifier nella stringa di formato.
//Uso di più format specifier //Stringa di formato class Main { public static void main(String[] args) { int n1 = 47; String text = "Risultato"; System.out.println(String.format("%s Esadecimale: %x", text, n1)); {} {}
Risultato di output
Risultato Esadecimale: 2f
In questo caso, %s viene sostituito con il valore di text. Allo stesso modo, %o viene sostituito con il valore esadecimale di n1.
class Main { public static void main(String[] args) { float n1 = -452.534f; double n2 = -345.766d; //按原样格式化浮点数 System.out.println(String.format("n1 = %f", n1)); // -452.533997 System.out.println(String.format("n2 = %f", n2)); // -345.766000 //显示到小数点后两位 System.out.println(String.format("n1 = %.2f", n1)); // -452.53 System.out.println(String.format("n2 = %.2f", n2)); // -345.77 {} {}
Risultato di output
n1 = -452.533997 n2 = -345.766000 n1 = -452.53 n2 = -345.77
Attenzione:Quando si formatta -452.534 con %f, otteniamo -452.533997. Questo non è dovuto al metodo format(). Java non restituisce una rappresentazione esatta dei numeri a virgola mobile.
Quando si utilizza il specificatore di formato %.2f, il metodo format() fornisce due numeri dopo il punto decimale.
// usando più specificatori di formato // in un formato di stringa class Main { public static void main(String[] args) { int n1 = 46, n2 = -46; String result; // Rempire il numero con spazi // La lunghezza della stringa è di 5 result = String.format("|%5d|", n1); // | 46| System.out.println(result); // Rempire il numero con lo 0 // La lunghezza della stringa è di 5 result = String.format("|%05d|", n1); // |00046| System.out.println(result); // Usare il segno davanti al numero result = String.format("%+d", n1); // +46 System.out.println(result); result = String.format("%+d", n2); // -46 System.out.println(result); // Mettere i numeri negativi tra parentesi // Eliminare il segno result = String.format("%(d", n2); // (46) System.out.println(result); {} {}
// Prima dell'esadecimale usare 0x // Prima dell'ottale usare 0 class Main { public static void main(String[] args) { int n = 46; System.out.println(String.format("%#o", n)); // 056 System.out.println(String.format("%#x", n)); // 0x2e {} {}
Se deve utilizzare l'ambiente linguistico specificato, il metodo String format() ha anche un'altra sintassi.
String.format(Locale l, String format, Object... args)
//Utilizzo di Locale import java.util.Locale; class Main { public static void main(String[] args) { int number = 8652145; String result; //Utilizzo dell'ambiente linguistico corrente result = String.format("Numeri: %,d", number); System.out.println(result); //Utilizzo dell'ambiente linguistico GERMAN come primo parametro result = String.format(Locale.GERMAN, "Numeri tedeschi: %,d", number); System.out.println(result); {} {}
Risultato di output
Numeri: 8,652,145 Numeri tedeschi: 8.652.145
Attenzione:In Germania, gli interi sono sostituiti da . in stead di ,.