當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java NumberFormatException用法及代碼示例


當嘗試將格式不正確的字符串轉換為數值時,會發生NumberFormatException 。這意味著,當無法將字符串轉換為任何數字類型(float、int 等)時,將引發此異常。它是Java中的運行時異常(Unchecked Exception)。它是IllegalArgumentException 類的a 子類。要處理此異常,可以使用 try - catch 塊。

在對字符串進行操作時,有時我們需要將字符串表示的數字轉換為整數類型。 Java中一般用於將String轉換為Integer的方法是parseInt()。

的用法parseInt()方法:眾所周知,該方法有兩種變體,如下所示,以便更好地理解

public static int parseInt(String s) throws NumberFormatException

This function parses the string argument as a signed decimal integer.
public static int parseInt(String s, int radix) throws NumberFormatException

This function parses the string argument as a signed integer in the radix specified by the second argument.

返回類型:

簡而言之,這兩種方法都將字符串轉換為其等效的整數。唯一的區別是參數基數。第一種方法可以視為與第二種方法等效,基數 = 10(十進製)。

構造函數:

  1. 公共NumberFormatException():構造一個沒有詳細消息的NumberFormatException。
  2. 公共 NumberFormatException(字符串消息):使用詳細消息‘msg’構造NumberFormatException

NumberFormatException 的常見原因:

存在與數值轉換的字符串格式不正確相關的各種問題。其中一些是:

1、輸入字符串為空

Integer.parseInt("null") ;

2、輸入字符串為空

Float.parseFloat(“”) ; 

3. 帶有前導和/或尾隨空格的輸入字符串

Integer abc=new Integer(“  432 “);

4. 輸入帶有額外符號的字符串

Float.parseFloat(4,236);

5. 包含非數字數據的輸入字符串

Double.parseDouble(“ThirtyFour”);

6. 輸入字符串為字母數字

Integer.valueOf(“31.two”);

7. 輸入字符串可能超出存儲解析字符串的數據類型範圍

Integer.parseInt(“1326589741236”); 

8. 輸入字符串值與用於解析的方法類型之間的數據類型不匹配

Integer.parseInt("13.26");

例子:

Java


// Java Program to illustrate NumberFormatException
// Importing Scanner class to take
// input number from the user
import java.util.Scanner;
//  Class
public class GFG {
    // Main driver method
    public static void main(String[] arg)
    {
        // Declaring an variable which
        // holds the input number entered
        int number;
        // Creating a Scanner class object to
        // take input from keyboard
        // System.in -> Keyboard
        Scanner sc = new Scanner(System.in);
        // Condition check
        // If condition holds true, Continue loop until
        // valid integer is entered by user
        while (true) {
            // Display message
            System.out.println("Enter any valid Integer: ");
            // Try block to check if any exception occurs
            try {
                // Parsing user input to integer
                // using the parseInt() method
                number = Integer.parseInt(sc.next());
                // Number can be valid or invalid
                // If number is valid, print and display
                // the message and number
                System.out.println("You entered: "
                                   + number);
                // Get off from this loop
                break;
            }
            // Catch block to handle NumberFormatException
            catch (NumberFormatException e) {
                // Print the message if exception occurred
                System.out.println(
                    "NumberFormatException occurred");
            }
        }
    }
}


輸出:以下輸出針對用戶輸入的不同數字

Enter any valid Integer:
12,017
NumberFormatException occurred
Enter any valid Integer:
Sixty4
NumberFormatException occurred
Enter any valid Integer:
null
NumberFormatException occurred
Enter any valid Integer:
436.25
NumberFormatException occurred
Enter any valid Integer:
3.o
NumberFormatException occurred
Enter any valid Integer:
98562341789
NumberFormatException occurred
Enter any valid Integer:
1000
You entered: 1000


相關用法


注:本文由純淨天空篩選整理自hemavatisabu大神的英文原創作品 NumberFormatException in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。