CodeGym /Java 博客 /随机的 /Java 中的 NumberFormatException
John Squirrels
第 41 级
San Francisco

Java 中的 NumberFormatException

已在 随机的 群组中发布

Java 中的 NumberFormatException 是什么?

“在将非数字字符串转换为数字时抛出 NumberFormatException。”
简单的说,如果一个String不是只有数字数据,你想把它转成数字,就会遇到这个异常。这也可以用另一种方式来解释。如果无法将String转换为数字,则异常用作指示符。根据您的要求,该数字可以是整数、浮点数或小数。例如,如果输入字符串包含所有字母、字母数字字符或特殊字符,并且您尝试尝试从String 转换为 Integer,则会抛出 NumberFormatException。

例子

让我们看一个简单的例子来理解这一点。

import java.util.Date;

public class NumberFormatExceptionTestDriver {

	public static void main(String[] args) {

		try {
			// a valid Integer number in the input String
			String inputString = "2550";
			System.out.println("Integer.pareseInt(" + inputString + ") = " + Integer.parseInt(inputString));
		} catch (NumberFormatException e) {
			// java.lang.NumberFormatException will be thrown if the  
			// input string can not be converted to a valid integer
			System.out.println("\nNumberFormatException thrown! " + e.getMessage());
		}

		try {
			// a floating number in the input String
			// use Float.parseFloat(inputString) to avoid this exception
			String inputString = "255.0"; 
			System.out.println("Integer.pareseInt(" + inputString + ") = " + Integer.parseInt(inputString));
		} catch (NumberFormatException e) {
			System.out.println("\nNumberFormatException thrown! " + e.getMessage());
		}

		try {
			Date day = new Date();
			// date containing alpha-numeric data in the input string
			String inputString = day.toString();
			System.out.println("Integer.pareseInt(" + inputString + ") = " + Integer.parseInt(inputString));
		} catch (NumberFormatException e) {
			System.out.println("\nNumberFormatException thrown! " + e.getMessage());
		}

		try {
			// numbers with spaces in the input string
			String inputString = "1 2 3";
			System.out.println("Integer.pareseInt(" + inputString + ") = " + Integer.parseInt(inputString));
		} catch (NumberFormatException e) {
			System.out.println("\nNumberFormatException thrown! " + e.getMessage());
		}

		try {
			// all letters in the input string
			String inputString = "Lubaina Khan";
			System.out.println("Integer.pareseInt(" + inputString + ") = " + Integer.parseInt(inputString));

		} catch (NumberFormatException e) {
			System.out.println("\nNumberFormatException thrown! " + e.getMessage());
		}
	}
}

输出

Integer.pareseInt(2550) = 2550 抛出 NumberFormatException!对于输入字符串:抛出“255.0”NumberFormatException!对于输入字符串:“Wed Aug 11 08:18:21 PKT 2021”抛出 NumberFormatException!对于输入字符串:“1 2 3”抛出 NumberFormatException!对于输入字符串:“Lubaina Khan”

结论

我们希望您理解为什么 NumberFormatException 在 Java 中出现。如果您了解根本原因,则始终可以找出原因并加以纠正。如果你还不清楚这个概念,再犯更多的错误,你就会知道这个问题的原因和方法。直到那时继续成长并继续学习。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION