Java 中的 NumberFormatException 示例
原文:https://www . geesforgeks . org/numberformateexception-in-Java-with-examples/
当试图将格式不正确的字符串转换为数值时,会出现 NumberFormatException 。这意味着,当无法转换任何数字类型(浮点、int 等)的字符串时,将引发此异常。它是 Java 中的运行时异常(未检查的异常)。是 IllegalArgumentException 类的一个子类。要处理这个异常,可以使用–挡块。
在对字符串进行操作时,有时我们需要将表示为字符串的数字转换为整数类型。在 Java 中,通常用于将字符串转换为整数的方法是 parseInt()。
parsent()方法的用法:正如我们已经知道的,该方法有两种变体,即如下,以便更好地理解
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 的常见原因:
存在各种与数值转换的不正确字符串格式相关的问题。其中一些是:
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 occured
System.out.println(
"NumberFormatException occured");
}
}
}
}
输出:以下输出是用户输入的不同数字
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
版权属于:月萌API www.moonapi.com,转载请注明出处