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是字母数字,不能转换为整数。
只有避免此异常的方法是正确的输入数据,只要我们正在执行字符串转换,就应该适当的异常处理。