Java >> Programma Java >  >> Tag >> String

Formato stringa Java()

In questo tutorial impareremo il metodo Java String format() con l'aiuto di esempi.

Il format() restituisce una stringa formattata in base all'argomento passato.

Esempio

class Main {
  public static void main(String[] args) {

    String str = "Java";

    // format string 
    String formatStr = String.format("Language: %s", str);

    System.out.println(formatStr);
  }
}

// Output: Language: Java

Formatta() Sintassi

La sintassi della stringa format() il metodo è:

String.format(String str, Object... args)

Ecco,

  • format() è un metodo statico. Chiamiamo il format() metodo usando il nome della classe String .
  • str è una stringa che deve essere formattata
  • ... nel codice sopra significa che puoi passare più di un oggetto a format() .

Formatta() Parametri

Il format() il metodo accetta due parametri.

  • formato - una stringa di formato
  • args - 0 o più argomenti

formato() Valore restituito

  • restituisce una stringa formattata

Esempio 1:Java String format()

class Main {
  public static void main(String[] args) {
    String language = "Java";
    int number = 30;
    String result;

    // format object as a string
    result = String.format("Language: %s", language);

    System.out.println(result);  // Language: Java

    // format number as a hexadecimal number
    result = String.format("Hexadecimal Number: %x", number);  // 1e

    System.out.println(result); // Hexadecimal Number: 1e
  }
}

Nel programma sopra, notare il codice

result = String.format("Language: %s", language);

Qui, "Language: %s" è una stringa di formato .

%s nella stringa di formato viene sostituita con il contenuto di lingua . %s è un identificatore di formato.

Allo stesso modo, %x viene sostituito con il valore esadecimale di numero in String.format("Number: %x", number) .

Specificatori di formato

Ecco gli identificatori di formato comunemente usati:

Specificatore Descrizione
%b , %B "true" o "false" sulla base dell'argomento
%s , %S una stringa
%c , %C un carattere Unicode
%d un numero intero decimale (usato solo per numeri interi)
%o un numero intero ottale (usato solo per numeri interi)
%x , %X un numero intero esadecimale (usato solo per numeri interi)
%e , %E per la notazione scientifica (usata per i numeri in virgola mobile)
%f per i numeri decimali (usati per i numeri in virgola mobile)

Esempio 2:formattazione di stringhe di numeri

class Main {
  public static void main(String[] args) {
    int n1 = 47;
    float n2 = 35.864f;
    double n3 = 44534345.76d;

    // format as an octal number
    System.out.println(String.format("n1 in octal: %o", n1));  // 57


    // format as hexadecimal numbers
    System.out.println(String.format("n1 in hexadecimal: %x", n1));  // 2f
    System.out.println(String.format("n1 in hexadecimal: %X", n1));  // 2F

    // format as strings
    System.out.println(String.format("n1 as string: %s", n1));  // 47
    System.out.println(String.format("n2 as string: %s", n2));  // 35.864

    // format in scientific notation
    System.out.println(String.format("n3 in scientific notation: %g", n3)); // 4.45343e+07
  }
}

Risultato

n1 in octal: 57
n1 in hexadecimal: 2f
n1 in hexadecimal: 2F
n1 as string: 47
n2 as string: 35.864
n3 in scientific notation: 4.45343e+07

Esempio 3:formato stringa con identificatori di formato multipli

Puoi utilizzare più di un identificatore di formato nella stringa di formato.

// using more than one format specifiers
// in a format string
class Main {
  public static void main(String[] args) {
    int n1 = 47;
    String text = "Result";

    System.out.println(String.format("%s\nhexadecimal: %x", text, n1));


  }
}

Risultato

Result
hexadecimal: 2f

Qui, %s viene sostituito con il valore di testo . Allo stesso modo, %o viene sostituito con il valore esadecimale di n1 .

Esempio 4:formattazione di numeri decimali

class Main {
  public static void main(String[] args) {

    float n1 = -452.534f;
    double n2 = -345.766d;

    // format floating-point as it is
    System.out.println(String.format("n1 = %f", n1)); // -452.533997

    System.out.println(String.format("n2 = %f", n2)); // -345.766000

    // show up to two decimal places
    System.out.println(String.format("n1 = %.2f", n1)); // -452.53

    System.out.println(String.format("n2 = %.2f", n2)); // -345.77
  }
}

Risultato

n1 = -452.533997
n2 = -345.766000
n1 = -452.53
n2 = -345.77

Nota: Quando formattiamo -452.534 utilizzando %f , stiamo ottenendo -452.533997 . Non è a causa del format() metodo. Java non restituisce la rappresentazione esatta dei numeri in virgola mobile.

Quando %.2f viene utilizzato l'identificatore di formato, format() fornisce due numeri dopo la virgola.

Esempio 5:riempimento di numeri con spazi e 0

// using more than one format specifiers
// in a format string
class Main {
  public static void main(String[] args) {
    int n1 = 46, n2 = -46;
    String result;

    // padding number with spaces
    // the length of the string will be 5
    result = String.format("|%5d|", n1); // |   46|

    System.out.println(result);

    // padding number with numbers 0
    // the length of the string will be 5
    result = String.format("|%05d|", n1); // |00046|

    System.out.println(result);

    // using signs before numbers
    result = String.format("%+d", n1); // +46

    System.out.println(result);

    result = String.format("%+d", n2); // -46

    System.out.println(result);

    // enclose negative number within parenthesis
    // and removing the sign
    result = String.format("%(d", n2); // (46)

    System.out.println(result);
  }
}

Esempio 6:utilizzo di 0x e 0 prima di esadecimale e ottale

// using 0x before hexadecimal
// using 0 before octal
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 Locale

La stringa format() il metodo ha anche un'altra sintassi se devi lavorare con la locale specificata.

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

Esempio 7:utilizzo della lingua tedesca in format()

// to use Locale
import java.util.Locale;

class Main {
  public static void main(String[] args) {
    int number = 8652145;
    String result;

    // using the current locale
    result = String.format("Number: %,d", number);

    System.out.println(result);

    // using the GERMAN locale as the first argument
    result = String.format(Locale.GERMAN, "Number in German: %,d", number);

    System.out.println(result);
  }
}

Risultato

Number: 8,652,145
Number in German: 8.652.145

Nota: In Germania, gli interi sono separati da . invece di , .


Etichetta Java