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

Java Base Tutorial

Contrôle de flux Java

Java Tableau

Java Orienté Objet (I)

Java Orienté Objet (II)

Java Orienté Objet (III)

Java Exception Handling

Java Liste (Liste)

Java Queue (File d'attente)

Java Map Set

Java Set Set

Java entrée/sortie (I)/O)

Java Reader/Writer

Autres sujets Java

Utilisation et exemple de la méthode String.format() de Java

Java String (string) methods

La méthode String.format() de Java retourne une chaîne de caractères formatée en fonction des paramètres passés.

La syntaxe de la méthode String.format() est :

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

Note:

  • format() est une méthode statique. Nous appelons la méthode format() en utilisant le nom de la classe String.

  • Dans le code ci-dessus, ... représente que plusieurs objets peuvent être passés à format().

Paramètres de format

  • format - Chaîne de format

  • args - 0 ou plus de paramètres

Valeur de retour de format

  • Retourne la chaîne de caractères formatée

Example1:Format String Java

class Main {
  public static void main(String[] args) {
    String language = "Java";
    int number = 30;
    String result;
    // Formater un objet en chaîne de caractères
    result = String.format("Language: %s", language);
    System.out.println(result); // Language: Java
    //Formater un nombre en nombre hexadécimal
    result = String.format("Nombre hexadécimal: %x", number); // 1e
    System.out.println(result); // Nombre hexadécimal: 1e
  }
}

Dans le programme ci-dessus, notez le code

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

Cela "Language: %s" est unChaîne de format.

Remplacez %s dans la chaîne de format par le contenu de language. %s est un indicateur de format.

De même, %x est remplacé par la valeur hexadécimale de number dans String.format("Number: %x", number).

Indicateur de format

Voici les indicateurs de format courants :

IndicateurDescription
%b, %BSelon le paramètre pour "true" ou "false"
%s, %SUne chaîne de caractères
%c, %CCaractère Unicode
%dEntier décimal (uniquement pour les entiers)
%oEntier octal (uniquement pour les entiers)
%x, %XEntier hexadécimal (uniquement pour les entiers)
%e, %EPour la notation scientifique (utilisé pour les nombres à virgule flottante)
%fPour les nombres décimaux (utilisé pour les nombres à virgule flottante)

Example2:Format de chaîne de nombre

class Main {
  public static void main(String[] args) {
    int n1 = 47;
    float n2 = 35.864f;
    double n3 = 44534345.76d;
    //Formaté en nombres octaux
    System.out.println(String.format("n1En octal: %o", n1));  // 57
    //Formaté en nombres hexadécimaux
    System.out.println(String.format("n1En hexadécimal: %x", n1));  // 2f
    System.out.println(String.format("n1En hexadécimal: %X", n1));  // 2F
    //Formaté en chaîne de caractères
    System.out.println(String.format("n1En tant que chaîne de caractères: %s", n1));  // 47
    System.out.println(String.format("n2En tant que chaîne de caractères: %s", n2));  // 35.864
    //Format de notation scientifique
    System.out.println(String.format("n3Système de notation scientifique: %g", n3)); // 4.45343e+07
  }
}

Output result

n1Octal: 57
n1Hexadécimal: 2f
n1Hexadécimal: 2F
n1En tant que chaîne: 47
n2En tant que chaîne: 35.864
n3Exponentielle: 4.45343e+07

Vous pouvez utiliser plusieurs spécificateurs de format dans la chaîne de format.

Example3:Using multiple format specifiers

//Using multiple format specifiers
//Chaîne de format
class Main {
  public static void main(String[] args) {
    int n1 = 47;
    String text = "Result";
    System.out.println(String.format("%s\nHexadécimal: %x", text, n1));
  }
}

Output result

Result
Hexadécimal: 2f

Ici, %s est remplacé par la valeur de text. De même, %o est remplacé par n1valeur hexadécimale.

Fonctionnement de Java String format()

Example4:Format des nombres décimaux

class Main {
  public static void main(String[] args) {
    float n1 = -452.534f;
    double n2 = -345.766d;
    //Formater le nombre flottant comme il est
    System.out.println(String.format("n1 =%f", n1)); // -452.533997
    System.out.println(String.format("n2 =%f", n2)); // -345.766000
    //Afficher jusqu'à deux décimales après la virgule
    System.out.println(String.format("n1 =%.2f", n1)); // -452.53
    System.out.println(String.format("n2 =%.2f", n2)); // -345.77
  }
}

Output result

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

Note:lorsque nous utilisons %f pour formater-452.534lorsque-452.533997。 Ce n'est pas parce que le format() méthode. Java ne retourne pas l'exacte représentation des nombres flottants.

Utiliser %.2Lorsque le format spécificateur f est utilisé, format() donne deux chiffres après le point décimal.

Example5:Remplir le nombre avec des espaces et des zéros

// using more than one format specifiers
// dans une chaîne de format
class Main {
  public static void main(String[] args) {
    int n1 = 46, n2 = -46;
    String result;
        //Remplir le nombre avec des espaces
        //La longueur de la chaîne est5
    result = String.format("|%5d|", n1); // |   46|
    System.out.println(result);
        //Remplir le nombre avec des zéros
        //La longueur de la chaîne est5
    result = String.format("|%5d|", n1); // |00046|
    System.out.println(result);
    //Utiliser un signe avant le nombre
    result = String.format("%+d", n1); // +46
    System.out.println(result);
    result = String.format("%+d", n2); // -46
    System.out.println(result);
        //Encadrer le nombre négatif entre parenthèses
        //Supprimer le signe
    result = String.format("%(d", n2); // (46)
    System.out.println(result);
  }
}

Example6:Utiliser 0x et 0 avant l'hexadécimal et l'octal

//Utiliser 0x avant l'hexadécimal
//Utiliser 0 avant l'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() avec environnement linguistique

Si l'utilisation de l'environnement linguistique spécifié est obligatoire, la méthode String format() a une autre syntaxe.

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

Example7: Use GERMAN locale in format()

//Use Locale
import java.util.Locale;
class Main {
  public static void main(String[] args) {
    int number = 8652145;
    String result;
    //Use the current locale
    result = String.format("Numbers: %,d", number);
    System.out.println(result);
    //Use GERMAN locale as the first parameter
    result = String.format(Locale.GERMAN, "German numbers: %,d", number);
    System.out.println(result);
  }
}

Output result

Numbers: 8,652,145
German numbers: 8.652.145

Note:In Germany, integers are represented by '.' instead of ','.

Java String (string) methods