Java中的NumberFormatException是什么?
Java中的NumberFormatException是一个运行时异常,常常发生在字符串通过解析为基本类型时出现格式错误时抛出。
当需要将一个字符串转换为特定类型(如int、long、float、double等)时,如果字符串格式不符合要求,就会抛出NumberFormatException异常。
比如当要将一个包含英文字母的字符串转换为数字类型时,就会触发NumberFormatException异常。下面是一个示例:
String numStr = "123abc";int num = Integer.parseInt(numStr); // 抛出NumberFormatException异常上述代码中,numStr字符串中包含英文字母,无法转换为整型数字,因此会抛出NumberFormatException异常。
为了避免该异常的发生,可以使用try-catch语句捕获异常并进行处理。例如:
try { String numStr = "123abc"; int num = Integer.parseInt(numStr);} catch (NumberFormatException e) { System.out.println("字符串格式错误!"); e.printStackTrace();}此外,还有一些常见的情况会引发NumberFormatException异常。例如,当要将一个空字符串("")或只包含空格的字符串转换成数字时,也会引发此异常,因为空字符串无法转换为数字类型。下面是一个示例:
String numStr = "";int num = Integer.parseInt(numStr); // 抛出NumberFormatException异常为了避免这种情况,可以在转换前使用trim()方法去掉字符串中的空格,并检查字符串是否为空。例如:
String numStr = " 123 ";if (numStr.trim().iSEMpty()) { System.out.println("字符串为空!");} else { int num = Integer.parseInt(numStr.trim()); System.out.println("转换后的数字为:" + num);}上述代码中,使用trim()方法去掉字符串左右两侧的空格,并使用isEmpty()方法检测字符串是否为空。如果不为空,则进行转换,否则输出提示信息。