java.lang.NumberFormatException: For input string: "2/3"

今天做Excel导入时有一个计算公式,需要判断出字符串“2/3”的时候计算公式,由于马虎忘记判断了,以致于代码中:
Double.parseDouble(courseTyCal);//courseTyCal = "2/3";报错了
 

报java.lang.NumberFormatException的错误,错误原因在上面代码也体现出来了,用字符串去转换成double类型本来是可以转换的,但是前提字符串是数字啊。这一个2/3根本是转换不出什么的。。

最后,写一下Java基本类型之间的转换规则:

1.除了boolean外,其他类型可以自由转换。

2.容量小的类型自动转换成容量到的类型。

3.容量由小到大依次为:byte<short<char<int<long<float<double

4.byte、short、char之间不会转换,运算时都转成int

5.容量大的数据类型转换成容量小的数据类型时需要加强制转换符,但会损失精度或溢出。

6.多种数据类型运算时,系统先将所有数据类型转换成容量大最大的数据类型再进行转换。

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; } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值