CodeGym /Blog Java /rawak /NumberFormatException dalam Java
John Squirrels
Tahap
San Francisco

NumberFormatException dalam Java

Diterbitkan dalam kumpulan

Apakah NumberFormatException dalam Java?

"NumberFormatException dilemparkan pada penukaran Rentetan bukan angka kepada nombor."
Ringkasnya, jika String tidak hanya menyimpan data berangka dan anda cuba menukarnya menjadi nombor, anda akan menghadapi pengecualian ini. Ini juga boleh ditafsirkan dengan cara lain. Pengecualian digunakan sebagai penunjuk jika penukaran String kepada nombor tidak dapat dilakukan. Nombor itu boleh menjadi integer, apungan atau perpuluhan mengikut keperluan anda. Contohnya, jika rentetan input mengandungi semua huruf, aksara alfa-numerik atau aksara khas dan anda cuba mencuba penukaran daripada String kepada Integer maka NumberFormatException akan dilemparkan.

Contoh

Mari lihat contoh mudah untuk memahami perkara ini.

import java.util.Date;

public class NumberFormatExceptionTestDriver {

	public static void main(String[] args) {

		try {
			// a valid Integer number in the input String
			String inputString = "2550";
			System.out.println("Integer.pareseInt(" + inputString + ") = " + Integer.parseInt(inputString));
		} catch (NumberFormatException e) {
			// java.lang.NumberFormatException will be thrown if the  
			// input string can not be converted to a valid integer
			System.out.println("\nNumberFormatException thrown! " + e.getMessage());
		}

		try {
			// a floating number in the input String
			// use Float.parseFloat(inputString) to avoid this exception
			String inputString = "255.0"; 
			System.out.println("Integer.pareseInt(" + inputString + ") = " + Integer.parseInt(inputString));
		} catch (NumberFormatException e) {
			System.out.println("\nNumberFormatException thrown! " + e.getMessage());
		}

		try {
			Date day = new Date();
			// date containing alpha-numeric data in the input string
			String inputString = day.toString();
			System.out.println("Integer.pareseInt(" + inputString + ") = " + Integer.parseInt(inputString));
		} catch (NumberFormatException e) {
			System.out.println("\nNumberFormatException thrown! " + e.getMessage());
		}

		try {
			// numbers with spaces in the input string
			String inputString = "1 2 3";
			System.out.println("Integer.pareseInt(" + inputString + ") = " + Integer.parseInt(inputString));
		} catch (NumberFormatException e) {
			System.out.println("\nNumberFormatException thrown! " + e.getMessage());
		}

		try {
			// all letters in the input string
			String inputString = "Lubaina Khan";
			System.out.println("Integer.pareseInt(" + inputString + ") = " + Integer.parseInt(inputString));

		} catch (NumberFormatException e) {
			System.out.println("\nNumberFormatException thrown! " + e.getMessage());
		}
	}
}

Pengeluaran

Integer.pareseInt(2550) = 2550 NumberFormatException dilemparkan! Untuk rentetan input: "255.0" NumberFormatException dilemparkan! Untuk rentetan input: "Rabu 11 Ogos 08:18:21 PKT 2021" NumberFormatException dilemparkan! Untuk rentetan input: "1 2 3" NumberFormatException dilemparkan! Untuk rentetan input: "Lubaina Khan"

Kesimpulan

Kami harap anda faham mengapa NumberFormatException timbul di Java. Jika anda telah memahami punca utama, anda sentiasa boleh mengenal pasti sebab dan membetulkannya. Jika anda masih tidak jelas tentang konsep ini, buat lebih banyak kesilapan dan anda akan belajar mengapa dan bagaimana masalah ini. Sehingga itu terus berkembang dan terus belajar.
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION