English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

教程基础Java

Java Flow Control

Java Array

Java Object-Oriented (I)

Java Object-Oriented (II)

Java Object-Oriented (III)

Gestione delle eccezioni Java

Java List

Java Queue (Queue)

Java Map Collection

Java Set Collection

Java Input/Output (I/O)

Reader/Writer in Java

Altri argomenti Java

Uso e esempio di String format() Java

Metodi String (stringa) Java

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().

Parametri di format()

  • format - Stringa di formattazione

  • args - 0 o più parametri

Valore di ritorno di format()

  • Restituisce una stringa formattata

Esempio 1: String format() Java

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).

Convenzione di formattazione

Di seguito sono riportati i convenzioni di formattazione più comuni:

ConvenzioneDescrizione
%b, %BSecondo il parametro "true" o "false"
%s, %SUna stringa
%c, %CCarattere Unicode
%dIntero decimale (usato solo per interi)
%oIntero ottale (usato solo per interi)
%x, %XIntero esadecimale (usato solo per interi)
%e, %EPer la notazione scientifica (usati per numeri a virgola mobile)
%fPer numeri decimali (usati per numeri a virgola mobile)

Esempio 2: Formattazione della stringa numerica

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.

Esempio 3: Uso di più format specifier

//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.

Funzionamento di String format() in Java

Esempio 4: Formattazione del numero decimale

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.

Esempio 5: Rempire il numero con spazi e 0

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

Esempio 6: Usare 0x e 0 prima dell'ottale ed esadecimale

// 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
  {}
{}

Java string format() con ambiente linguistico

Se deve utilizzare l'ambiente linguistico specificato, il metodo String format() ha anche un'altra sintassi.

String.format(Locale l, String format, Object... args)

Esempio 7: Utilizzo dell'ambiente linguistico GERMAN nel format()}

//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 ,.

Metodi String (stringa) Java