Exception in thread “main” java.lang.NumberFormatException: For input string: “9646324351”(Leetcode 07 翻转整数)
解决办法:使用try catch捕获异常 即可通过。
public static int reverse(int num) {
if (num / 10 == 0) return num; // 如果数字只有一位,则直接返回该数字
int absNum = Math.abs(num); // 获取数字的绝对值
String str = String.valueOf(absNum); // 将绝对值转换为字符串
StringBuilder stringBuilder = new StringBuilder();
while (absNum % 10 == 0) {
absNum /= 10; // 去除末尾的0
}
while (absNum != 0) {
stringBuilder.append(absNum % 10); // 取出最后一位并添加到字符串中
absNum /= 10; // 去掉最后一位
}
try {
int ans = Integer.parseInt(stringBuilder.toString()); // 将字符串解析为整数
return num < 0 ? -ans : ans; // 根据原始数字的符号返回结果
} catch (Exception e) {
return 0; // 如果解析过程中发生异常,例如字符串包含非数字字符或超出整数的表示范围,会捕获异常并返回0。
}
}