java.lang.NumberFormatException: For input string: " "这二个问题怎么解决

ZYBalance1=Double.parseDouble((String)(resultMap.get(DataFormat.formatDate(selectDate... ZYBalance1 = Double.parseDouble((String)(resultMap.get(DataFormat.formatDate(selectDateStart)+"-"+LOANConstant.LoanType.ZY+"-1" )!=null?resultMap.get(DataFormat.formatDate(selectDateStart)+"-"+LOANConstant.LoanType.ZY+"-1" ):" ").toString());
ZYBalance2 = Double.parseDouble((String)(resultMap.get(DataFormat.formatDate(selectDateStart)+"-"+LOANConstant.LoanType.ZY+"-2")!=null? resultMap.get(DataFormat.formatDate(selectDateStart)+"-"+LOANConstant.LoanType.ZY+"-2" ):" ").toString());
WTBalance1 = Double.parseDouble((String)(resultMap.get(DataFormat.formatDate(selectDateStart)+"-"+LOANConstant.LoanType.WT+"-1") ).toString());
展开
 我来答
大野瘦子
高粉答主

推荐于2019-08-18 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:34.5万
展开全部

可以这样:Double.parseDouble(n.equals("")?"0":n);

注:n是你需要转换的字符串

因为:java.lang.NumberFormatException: For input string: " "

这个异常是说,在将字符串转换为number的时候格式化错误。

“”空的字符串有对应的数值吗,这里显然没有,所以就一个问题,如上即可。

扩展资料:

注意事项

如果传入的值不为null或“”可以正常运行不报错,如果为空值就会出现任如下异常。

by: java.lang.NumberFormatException: For input string: "null"

at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

at java.lang.Integer.parseInt(Integer.java:580)

at java.lang.Integer.parseInt(Integer.java:615)

这里的

For input string: "null"

并不是指传入的值为空,而是指传入的字符串为“null”,而“null”并不能被StringUtils.split()切割,进而不能被Integer.parseInt()调用,所以会报错。

if(customerIdStr != null && !customerIdStr.equals("") ){

String[] customerIds = customerIdStr.split(",");

//将字符串客户ID 转换为整数ID

for (String idStr : customerIds) {

Integer id = Integer.parseInt(idStr);

customerRepository.updatefixedAreaId(fixedAreaId,id);

}

}else{

return;

}

所以只需要在上面的判断语句后面再加一个判断传入的参数是否不为“null”的条件即可解决此类异常问题。

if(customerIdStr != null && !customerIdStr.equals("") && !customerIdStr.equals("null")){

String[] customerIds = customerIdStr.split(",")

鲲背浮雪_
2015-10-21 · TA获得超过204个赞
知道小有建树答主
回答量:385
采纳率:66%
帮助的人:246万
展开全部
数字格式化异常,输入一个空字符串,进行数字转换会出现这个异常,
resultMap中肯定有某一个key对应的value为空,一般先判断是否为空,再进行parseDouble转换
更多追问追答
追问
Double.parseDouble((String)(resultMap.get(DataFormat.formatDate(selectDateStart)+"-"+LOANConstant.LoanType.WT+"-1") ).toString());
在这句话中怎么加判空校验啊?
追答
String key = DataFormat.formatDate(selectDateStart)+"-"+LOANConstant.LoanType.WT+"-1";
String value = resultMap.get(key)+"";
if(value!=null&&value.trim().length>0){
  Double.parseDouble(value);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沧桑老腊肉
推荐于2017-09-22 · TA获得超过200个赞
知道小有建树答主
回答量:183
采纳率:0%
帮助的人:194万
展开全部
两个问题?
java.lang.NumberFormatException: For input string: " "
这个异常是说,在将字符串转换为number的时候格式化错误
“”空的字符串有对应的数值吗,显然没有
所以你可以
Double.parseDouble(n.equals("")?"0":n);

n是你需要转换的字符串
追问
Double.parseDouble((String)(resultMap.get(DataFormat.formatDate(selectDateStart)+"-"+LOANConstant.LoanType.WT+"-1") ).toString());
那如果我要在这句话中加判空校验怎么做
追答
String str = (String)(resultMap.get(DataFormat.formatDate(selectDateStart)+"-"+LOANConstant.LoanType.WT+"-1") ).toString();

Double.parseDouble(str.equals("")?"0":str);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xqqlxm
2015-10-21 · TA获得超过338个赞
知道小有建树答主
回答量:533
采纳率:100%
帮助的人:233万
展开全部
出现空字符串了,你查找下哪个对象为空了,转成数字类型时,失败了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式