Heim  >  Artikel  >  Java  >  Lösung für die Java-formatierte Ausgabeausnahme (FormattedOutputException)

Lösung für die Java-formatierte Ausgabeausnahme (FormattedOutputException)

PHPz
PHPzOriginal
2023-08-25 22:30:381335Durchsuche

Lösung für die Java-formatierte Ausgabeausnahme (FormattedOutputException)

Lösung für Java FormattedOutputException

Bei der Java-Programmierung müssen wir häufig die Ausgabedaten formatieren, um die Ausgabeinformationen leichter lesbar und verständlich zu machen. Manchmal kann es jedoch zu einer Ausnahme namens FormattedOutputException kommen, die darauf hinweist, dass während des formatierten Ausgabevorgangs ein Fehler aufgetreten ist. In diesem Artikel werden die Ursache und Lösung dieser Ausnahme vorgestellt und entsprechende Codebeispiele aufgeführt.

1. Analyse der Ausnahmeursachen
FormattedOutputException-Ausnahme tritt normalerweise auf, wenn die Ausgabe mit der format()-Methode der String-Klasse formatiert wird. Wenn wir die Methode format() verwenden, übergeben wir normalerweise einen Formatstring und entsprechende Parameter. Wenn der Platzhalter in der Formatzeichenfolge jedoch nicht mit dem tatsächlichen Parametertyp übereinstimmt, tritt eine FormattedOutputException-Ausnahme auf.

2. Lösung
Um die FormattedOutputException-Ausnahme zu lösen, müssen wir auf zwei Punkte achten: die Übereinstimmung von Platzhaltern in der Formatzeichenfolge und die Escapezeichen von Sonderzeichen in der Formatzeichenfolge.

  1. Platzhalter- und Parameterabgleich
    Wenn wir den Platzhalter „%s“ in der formatierten Zeichenfolge verwenden, bedeutet dies, dass er durch einen Parameter vom Typ Zeichenfolge ersetzt werden muss. Wenn der tatsächliche Parameter, den wir übergeben, nicht vom Typ String ist, tritt eine FormattedOutputException auf. Um dieses Problem zu vermeiden, müssen wir basierend auf dem Parametertyp geeignete Platzhalter auswählen. Wenn der Parameter beispielsweise vom Typ „Ganzzahl“ ist, sollten wir „%d“ als Platzhalter verwenden. Wenn der Parameter vom Typ „Gleitkomma“ ist, sollten wir „%f“ als Platzhalter verwenden. Hier ist ein Beispielcode:
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);
    }
}

Im obigen Beispielcode haben wir drei Platzhalter in der Formatzeichenfolge verwendet: %s, %d, %f. Da der Parametername ein Zeichenfolgentyp ist, verwenden wir „%s“ als Platzhalter. Ebenso ist der Parameter „Alter“ ein Ganzzahltyp, sodass wir als Platzhalter „%d“ verwenden. Daher haben wir „%f“ als Platzhalter verwendet und „.2“ übergeben, um anzugeben, dass nur zwei Dezimalstellen beibehalten werden.

  1. Escape von Sonderzeichen
    In der Formatzeichenfolge müssen einige Sonderzeichen maskiert werden, da sonst eine FormattedOutputException auftritt. Wenn wir beispielsweise ein Prozentzeichen „%“ in der Formatzeichenfolge ausgeben möchten, müssen wir „%%“ verwenden, um es zu maskieren. Das Folgende ist ein Beispielcode:
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));
    }
}

Im obigen Beispielcode vermeiden wir das Auftreten von FormattedOutputException, indem wir „%%“ verwenden, um das Prozentzeichen % zu maskieren.

3. Zusammenfassung
Bei der Formatierung der Ausgabe in Java müssen wir auf die Übereinstimmung von Platzhaltern und tatsächlichen Parametern in der Formatzeichenfolge sowie auf das Escapezeichen von Sonderzeichen achten. Nur wenn die Platzhalter- und Parametertypen übereinstimmen und Sonderzeichen korrekt maskiert werden, kann die FormattedOutputException-Ausnahme vermieden werden. Durch die sinnvolle Verwendung von Platzhaltern und Escape-Zeichen können wir in der Java-Programmierung eine genauere und lesbarere formatierte Ausgabe erzielen.

Das obige ist der detaillierte Inhalt vonLösung für die Java-formatierte Ausgabeausnahme (FormattedOutputException). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn