用Integer.parseInt()老是有异常
时间: 2024-05-08 22:22:14 浏览: 117
`Integer.parseInt()` 可能会抛出 `NumberFormatException` 异常,这是因为方法尝试将一个不合法的字符串转换为整数,例如字符串包含非数字字符或者超出了整数类型的取值范围。
为了避免异常,你可以使用 `try-catch` 块来捕获异常,并在出现异常时进行处理。例如:
```java
try {
int num = Integer.parseInt(str);
// 处理 num
} catch (NumberFormatException e) {
// 处理异常情况
e.printStackTrace();
}
```
如果你已经确定字符串是合法的整数,可以使用 `Integer.valueOf()` 方法,它不会抛出异常,但如果字符串不合法会返回 `null`。例如:
```java
Integer num = Integer.valueOf(str);
if (num == null) {
// 处理字符串不合法的情况
} else {
// 处理 num
}
```
相关问题
7-22 整型数除法异常处理 分数 10 作者 wly-ws 单位 成都信息工程大学 从键盘输入两个int类型的整数作为除数和被除数求商。要求程序中捕获NumberFormatException 异常和ArithmeticException 异常,而且无论在哪种情况下,“总是被执行”这句话都会在控制台输出。 输入格式: 输入两个整数。 输出格式: 求商的结果,若有异常发生则输出异常信息。 如果输入数据为非整数(小数或非数字),提示:请输入整型数! 如果输入数值为0,提示:除数不可为0!
以下是对您的问题的回答:
您的问题是:
7-22 整型数除法异常处理 分数 10 作者 wly-ws 单位 成都信息工程大学 从键盘输入两个int类型的整数作为除数和被除数求商。要求程序中捕获NumberFormatException 异常和ArithmeticException 异常,而且无论在哪种情况下,“总是被执行”这句话都会在控制台输出。 输入格式: 输入两个整数。 输出格式: 求商的结果,若有异常发生则输出异常信息。 如果输入数据为非整数(小数或非数字),提示:请输入整型数! 如果输入数值为0,提示:除数不可为0!
回答:
以下是 Java 代码实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
int divisor = Integer.parseInt(scanner.next());
int dividend = Integer.parseInt(scanner.next());
int result = dividend / divisor;
System.out.println(result);
} catch (NumberFormatException e) {
System.out.println("请输入整型数!");
} catch (ArithmeticException e) {
System.out.println("除数不可为0!");
} finally {
System.out.println("总是被执行");
}
}
}
```
实现思路:
1. 创建一个 Scanner 对象,用于从控制台输入两个整数。
2. 使用 try-catch-finally 语句块,捕获 NumberFormatException 异常和 ArithmeticException 异常。
3. 在 try 块中,将输入的字符串转换成整数作为除数和被除数,然后进行除法运算,将结果保存在 result 变量中,并输出。
4. 如果输入的字符串无法转换成整数,将捕获 NumberFormatException 异常并输出提示信息“请输入整型数!”。
5. 如果除数为 0,将捕获 ArithmeticException 异常并输出提示信息“除数不可为0!”。
6. 无论是否发生异常,finally 块中的语句都会被执行,并输出“总是被执行”。
希望能够帮到您!
阅读全文