Rumah  >  Artikel  >  Java  >  Penyelesaian kepada pengecualian output berformat Java (FormattedOutputException)

Penyelesaian kepada pengecualian output berformat Java (FormattedOutputException)

PHPz
PHPzasal
2023-08-25 22:30:381337semak imbas

Penyelesaian kepada pengecualian output berformat Java (FormattedOutputException)

Solution to Java FormattedOutputException

Dalam pengaturcaraan Java, kita selalunya perlu memformat output data untuk menjadikan maklumat output lebih mudah dibaca dan difahami. Walau bagaimanapun, kadangkala kita mungkin menghadapi pengecualian yang dipanggil FormattedOutputException, yang menunjukkan bahawa ralat berlaku semasa proses output terformat. Artikel ini akan memperkenalkan sebab dan penyelesaian pengecualian ini, dan memberikan contoh kod yang sepadan.

1. Analisis punca pengecualian
FormattedOutputException pengecualian biasanya berlaku apabila memformat output menggunakan kaedah format() kelas String. Apabila kami menggunakan kaedah format(), kami biasanya menghantar dalam rentetan format dan parameter yang sepadan. Walau bagaimanapun, apabila pemegang tempat dalam rentetan format tidak sepadan dengan jenis parameter sebenar, pengecualian FormattedOutputException berlaku.

2. Penyelesaian
Untuk menyelesaikan pengecualian FormattedOutputException, kita perlu memberi perhatian kepada dua perkara: pemadanan ruang letak dalam rentetan format dan parameter sebenar yang melarikan diri daripada aksara khas dalam rentetan format.

  1. Pemadanan pemegang tempat dan parameter
    Apabila kita menggunakan pemegang tempat "%s" dalam rentetan format, ini bermakna ia perlu diganti dengan parameter jenis rentetan. Jika parameter sebenar yang kami masukkan bukan daripada jenis rentetan, FormattedOutputException akan berlaku. Untuk mengelakkan masalah ini, kita perlu memilih ruang letak yang sesuai berdasarkan jenis parameter. Sebagai contoh, jika parameter adalah jenis integer, kita harus menggunakan "%d" sebagai ruang letak; jika parameter adalah jenis titik terapung, kita harus menggunakan "%f" sebagai ruang letak. Berikut ialah kod sampel:
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);
    }
}

Dalam kod sampel di atas, kami menggunakan tiga ruang letak dalam rentetan format: %s, %d, %f. Oleh kerana nama parameter ialah jenis rentetan, kami menggunakan "%s" sebagai pemegang tempat, umur parameter ialah jenis integer, jadi kami menggunakan "%d" sebagai pemegang tempat, ketinggian parameter ialah jenis titik terapung; jadi kami menggunakan "%f" sebagai ruang letak dan lulus ".2" untuk menunjukkan bahawa hanya dua tempat perpuluhan dikekalkan.

  1. Melarikan diri daripada aksara khas
    Dalam rentetan format, beberapa aksara khas perlu dilepaskan, jika tidak FormattedOutputException akan berlaku. Sebagai contoh, jika kita ingin mengeluarkan tanda peratus "%" dalam rentetan format, kita perlu menggunakan "%%" untuk melepaskannya. Berikut ialah kod sampel:
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));
    }
}

Dalam kod sampel di atas, kami mengelakkan berlakunya FormattedOutputException dengan menggunakan "%%" untuk melepaskan tanda peratus %.

3. Ringkasan
Apabila memformat output dalam Java, kita perlu memberi perhatian kepada pemadanan ruang letak dan parameter sebenar dalam rentetan format, serta penyingkiran aksara khas. Hanya apabila pemegang tempat dan jenis parameter sepadan dan aksara khas dilarikan dengan betul boleh pengecualian FormattedOutputException dapat dielakkan. Dengan menggunakan ruang letak dan aksara melarikan diri secara rasional, kami boleh mencapai output berformat yang lebih tepat dan boleh dibaca dalam pengaturcaraan Java.

Atas ialah kandungan terperinci Penyelesaian kepada pengecualian output berformat Java (FormattedOutputException). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn