java.lang.numberformatexception.

时间:2020-02-23 14:35:03  来源:igfitidea点击:

在本教程中,我们将看到关于java.lang.numberformatexception。

Java.lang.numberformatexception发生在我们尝试将任何非数字字符串转换为整数,双重,浮点数或者长时间的数字。

当我们以字符串的形式从用户输入输入时,通常会发生此异常。

这不是Java开发人员的故障,主要是数据错误。

在这种情况下,应更正数据,我们可以将错误记录到稍后进行日志文件以进行分析。
如果我们不处理应用程序,则应用程序可能会崩溃。

让我们在一个例子的帮助下了解它。

package org.igi.theitroad;
 
import java.util.Scanner;
 
public class StringToIntegerConversion {
 
	public static void main(String[] args) {
		Scanner scanner = null ;
		try {
			System.out.println("Please enter a number:"); 
			scanner = new Scanner(System.in); 
			String inputStr = scanner.nextLine();
 
			int i = Integer.parseInt(inputStr);
 
			//If NumberFormatException occurs, this will become unreachable code
			System.out.println("Converted int value = " + i);
		}
		catch (NumberFormatException nfe) {
			nfe.printStackTrace();
		}
		finally
		{
			scanner.close();
		}
	}
}

运行上面的程序时,我们将得到以下输出:

迭代1:放置正确的整数值

Please enter a number:
10
Converted int value = 10

迭代2:将NA放在用户输入

Please enter a number:
NA
java.lang.NumberFormatException: For input string: “NA"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at org.igi.theitroad.StringToIntegerConversion.main(StringToIntegerConversion.java:14)

由于"NA"无法转换为整数,它将抛出超越异常。

迭代3:将""作为用户输入

Please enter a number:
java.lang.NumberFormatException: For input string: “"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:662)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at org.igi.theitroad.StringToIntegerConversion.main(StringToIntegerConversion.java:14)

""""无法转换为整数,它将抛出超越异常。

迭代4:将"1.0"放在用户输入中

Please enter a number:
1.0
java.lang.NumberFormatException: For input string: “1.0"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at org.igi.theitroad.StringToIntegerConversion.main(StringToIntegerConversion.java:14)

它还需要定位的输入字符串应该能够将目标数据类型转换为"1.0"无法转换为整数。

如何解析java.lang.numberformatexception

如果我们收到java.lang.numberformatexception,我们可以轻松查找异常本身的信息。

例如:

java.lang.NumberFormatException: For input string: “NA"

由于NA是字母数字,不能转换为整数。

只有避免此异常的方法是正确的输入数据,只要我们正在执行字符串转换,就应该适当的异常处理。