NumberFormatException dalam Java bermaksud apabila menukar rentetan kepada jenis angka dan didapati rentetan itu tidak memenuhi keperluan format jenis angka, pengecualian ini akan dijana. Berikut akan membincangkan punca, penyelesaian dan strategi mengatasi pengecualian NumberFormatException daripada aspek berikut.
Di Jawa, apabila menukar rentetan kepada jenis angka, syarat berikut perlu dipenuhi:
Jika rentetan tidak memenuhi mana-mana keperluan di atas, NumberFormatException akan dijana.
Sebagai contoh, laksanakan kod berikut:
String str = "123.45a"; int num = Integer.parseInt(str);
Oleh kerana rentetan mengandungi aksara bukan angka "a", pengecualian NumberFormatException akan dilemparkan.
Java menyediakan pelbagai kaedah untuk mengelakkan berlakunya pengecualian NumberFormatException.
Sebagai contoh, anda boleh menggunakan kod berikut untuk menapis aksara bukan angka dalam rentetan:
String str = "123.45a"; str = str.replaceAll("[^\d.+-]", ""); int num = Integer.parseInt(str);
Sebagai contoh, anda boleh menggunakan pernyataan cuba-tangkap dalam kod untuk menangkap pengecualian NumberFormatException:
String str = "123.45a"; try { int num = Integer.parseInt(str); } catch (NumberFormatException e) { e.printStackTrace(); }
Java menyediakan pelbagai kaedah penghuraian jenis berangka, seperti parseInt, parseLong, parseDouble, dll. Kaedah ini secara automatik akan menapis aksara bukan angka dalam rentetan.
Sebagai contoh, anda boleh menggunakan kod berikut untuk mengelakkan berlakunya NumberFormatException:
String str = "123.45a"; double num = Double.parseDouble(str);
Strategi tindak balas yang munasabah harus dibangunkan untuk berlakunya NumberFormatException. Berikut ialah beberapa strategi biasa:
Ringkasnya, pengecualian NumberFormatException berlaku kerana rentetan tidak memenuhi keperluan format jenis nombor. Untuk mengelakkan pengecualian, input pengguna harus diperiksa, rentetan input harus ditapis dan ditukar, dan strategi tindak balas yang munasabah harus dirumuskan.
Atas ialah kandungan terperinci Bagaimanakah pengecualian NumberFormatException dalam Java dihasilkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!