當嘗試將格式不正確的字符串轉換為數值時,會發生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(十進製)。
構造函數:
- 公共NumberFormatException():構造一個沒有詳細消息的NumberFormatException。
- 公共 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
相關用法
- Java NumberFormat clone()用法及代碼示例
- Java NumberFormat equals()用法及代碼示例
- Java NumberFormat getAvailableLocales()用法及代碼示例
- Java NumberFormat getCurrency()用法及代碼示例
- Java NumberFormat getCurrencyInstance()用法及代碼示例
- Java NumberFormat getInstance()用法及代碼示例
- Java NumberFormat getIntegerInstance()用法及代碼示例
- Java NumberFormat getMaximumFractionDigits()用法及代碼示例
- Java NumberFormat getMaximumIntegerDigits()用法及代碼示例
- Java NumberFormat getMinimumFractionDigits()用法及代碼示例
- Java NumberFormat getMinimumIntegerDigits()用法及代碼示例
- Java NumberFormat getNumberInstance()用法及代碼示例
- Java NumberFormat getPercentInstance()用法及代碼示例
- Java NumberFormat getRoundingMode()用法及代碼示例
- Java NumberFormat hashCode()用法及代碼示例
- Java NumberFormat isGroupingUsed()用法及代碼示例
- Java NumberFormat isParseIntegerOnly()用法及代碼示例
- Java NumberFormat parse()用法及代碼示例
- Java NumberFormat parseObject()用法及代碼示例
- Java NumberFormat setCurrency()用法及代碼示例
- Java NumberFormat setGroupingUsed()用法及代碼示例
- Java NumberFormat setMaximumFractionDigits()用法及代碼示例
- Java NumberFormat setMaximumIntegerDigits()用法及代碼示例
- Java NumberFormat setMinimumFractionDigits()用法及代碼示例
- Java NumberFormat setMinimumIntegerDigits()用法及代碼示例
注:本文由純淨天空篩選整理自hemavatisabu大神的英文原創作品 NumberFormatException in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。