java.lang.NumberFormatException: For input string: "h"
时间: 2024-12-05 21:14:15 浏览: 55
java.lang.NumberFormatException: For input string: "h" 是一个常见的Java异常,通常在尝试将一个非数字字符串转换为数字类型时抛出。具体来说,这个异常表示输入的字符串 "h" 不是有效的数字格式。
### 常见原因
1. **无效的输入字符串**:输入的字符串包含非数字字符,例如字母、符号等。
2. **空字符串**:输入的字符串为空。
3. **格式不匹配**:字符串的格式与预期的数字格式不匹配,例如尝试将包含小数点的字符串转换为整数。
### 示例代码
```java
public class NumberFormatExceptionExample {
public static void main(String[] args) {
String input = "h";
try {
int number = Integer.parseInt(input);
System.out.println("Number: " + number);
} catch (NumberFormatException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
```
### 解决方法
1. **输入验证**:在转换之前,检查输入字符串是否只包含数字字符。
2. **异常处理**:使用try-catch块捕获NumberFormatException,并提供友好的错误信息。
3. **使用正则表达式**:通过正则表达式验证输入字符串的格式。
### 示例代码(带输入验证)
```java
public class NumberFormatExceptionExample {
public static void main(String[] args) {
String input = "h";
if (isNumeric(input)) {
int number = Integer.parseInt(input);
System.out.println("Number: " + number);
} else {
System.out.println("Invalid input: " + input);
}
}
public static boolean isNumeric(String str) {
if (str == null) {
return false;
}
try {
Integer.parseInt(str);
return true;
} catch (NumberFormatException e) {
return false;
}
}
}
```
阅读全文