Maison  >  Article  >  Java  >  Solution à l'exception de sortie au format Java (FormattedOutputException)

Solution à l'exception de sortie au format Java (FormattedOutputException)

PHPz
PHPzoriginal
2023-08-25 22:30:381280parcourir

Solution à lexception de sortie au format Java (FormattedOutputException)

Solution à Java FormattedOutputException

Dans la programmation Java, nous devons souvent formater les données de sortie pour rendre les informations de sortie plus faciles à lire et à comprendre. Cependant, nous pouvons parfois rencontrer une exception appelée FormattedOutputException, qui indique qu'une erreur s'est produite lors du processus de sortie formatée. Cet article présentera la cause et la solution de cette exception, et donnera des exemples de code correspondants.

1. Analyse des causes d'exception
L'exception FormattedOutputException se produit généralement lors du formatage de la sortie à l'aide de la méthode format() de la classe String. Lorsque nous utilisons la méthode format(), nous transmettons généralement une chaîne de format et les paramètres correspondants. Toutefois, lorsque l'espace réservé dans la chaîne de format ne correspond pas au type de paramètre réel, une exception FormattedOutputException se produit.

2. Solution
Pour résoudre l'exception FormattedOutputException, nous devons prêter attention à deux points : la correspondance des espaces réservés dans la chaîne de format et les paramètres réels ;

  1. Correspondance des espaces réservés et des paramètres
    Lorsque nous utilisons l'espace réservé "%s" dans la chaîne formatée, cela signifie qu'il doit être remplacé par un paramètre de type chaîne. Si le paramètre réel que nous transmettons n’est pas de type chaîne, une FormattedOutputException se produira. Pour éviter ce problème, nous devons choisir des espaces réservés appropriés en fonction du type du paramètre. Par exemple, si le paramètre est de type entier, nous devons utiliser « %d » comme espace réservé ; si le paramètre est de type virgule flottante, nous devons utiliser « %f » comme espace réservé. Voici un exemple de code :
public class FormattedOutputExample {
    public static void main(String[] args) {
        String name = "Tom";
        int age = 20;
        double height = 1.80;

        // 错误示例,会导致FormattedOutputException异常
        System.out.format("My name is %s, age is %d, height is %f", name, age, height);

        // 正确示例
        System.out.format("My name is %s, age is %d, height is %.2f", name, age, height);
    }
}

Dans l'exemple de code ci-dessus, nous avons utilisé trois espaces réservés dans la chaîne de format : %s, %d, %f. Puisque le nom du paramètre est un type chaîne, nous utilisons « %s » comme espace réservé ; de même, le paramètre age est un type entier, nous utilisons donc « %d » comme espace réservé ; nous avons donc utilisé "%f" comme espace réservé et passé ".2" pour indiquer que seules deux décimales sont conservées.

  1. Échappement des caractères spéciaux
    Dans la chaîne de format, certains caractères spéciaux doivent être échappés, sinon FormattedOutputException se produira. Par exemple, si nous voulons afficher un signe de pourcentage « % » dans la chaîne de format, nous devons utiliser « %% » pour y échapper. Voici un exemple de code :
public class FormattedOutputExample {
    public static void main(String[] args) {
        double percentage = 0.8;

        // 错误示例,会导致FormattedOutputException异常
        System.out.format("The percentage is %d%", percentage * 100);

        // 正确示例
        System.out.format("The percentage is %d%%", (int)(percentage * 100));
    }
}

Dans l'exemple de code ci-dessus, nous évitons l'apparition de FormattedOutputException en utilisant "%%" pour échapper au signe de pourcentage %.

3. Résumé
Lors du formatage de la sortie en Java, nous devons faire attention à la correspondance des espaces réservés et des paramètres réels dans la chaîne de format, ainsi qu'à l'échappement des caractères spéciaux. Ce n'est que lorsque les types d'espace réservé et de paramètre correspondent et que les caractères spéciaux sont correctement échappés que les exceptions FormattedOutputException peuvent être évitées. En utilisant rationnellement des espaces réservés et des caractères d'échappement, nous pouvons obtenir une sortie formatée plus précise et plus lisible dans la programmation Java.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn