📅  最后修改于: 2023-12-03 15:31:54.562000             🧑  作者: Mango
NumberFormatException
是 Java 中一个非常常见的异常类,它通常会在字符串转换成数字的过程中抛出。
首先,让我们看一下代码示例:
String str = "abc";
int num = Integer.parseInt(str);
代码中,我们将一个非数字的字符串 abc
转换成了一个整数类型的变量 num
。运行代码后,程序会抛出 NumberFormatException
异常,因为 abc
无法转换成整数。
为了防止 NumberFormatException
异常的出现,我们应该使用 try-catch
结构来捕捉异常,如下所示:
String str = "123";
try {
int num = Integer.parseInt(str);
} catch (NumberFormatException e) {
System.out.println("无法将字符串转换为数字");
}
在这个示例中,我们将字符串 "123"
转换成了整数类型的变量 num
,并用 try-catch
结构来捕捉 NumberFormatException
异常。
除了将字符串转换成整数类型的方法 parseInt()
外,还有其他一些字符串转换数字的方法也可能抛出 NumberFormatException
异常。
例如,将字符串转换成浮点数类型的方法 parseFloat()
和 parseDouble()
,以及将字符串转换成长整型的方法 parseLong()
。
String str1 = "123.45";
String str2 = "123abc";
String str3 = "12345678901234567890";
try {
float f = Float.parseFloat(str1);
long l = Long.parseLong(str3);
double d = Double.parseDouble(str2);
} catch (NumberFormatException e) {
System.out.println("无法将字符串转换为数字");
}
上述示例中,将字符串 "123.45"
转换成了浮点数类型的变量 f
,将字符串 "12345678901234567890"
转换成了长整型的变量 l
,将字符串 "123abc"
转换成了双精度浮点数类型的变量 d
,并使用 try-catch
结构捕捉了 NumberFormatException
异常。
总之,NumberFormatException
异常是为了防止字符串转换成数字时出错而出现的。在将字符串转换成数字的过程中,我们应该注意异常处理,以避免程序崩溃。