java.lang.NumberFormatException: For input string: "1 9"
今天写了个java的小程序在运行的时候抛出下面的异常:java.lang.NumberFormatException: For input string: "1 9" 。定位到源程序中出错的地方:
String[] cols = key.toString().split(" ");
return Integer.parseInt(cols[0]) % numPartitions;
通过查询java API 以及百度,了解到抛NumberFormatException的情况为:当程序试图将一个字符串转换为一种数据类型,但是该字符串无法按要求转换成相应的类型的时候,就会抛出改异常。具体到我的程序,上面第二句用到Integer.parseInt()函数,即是要把字符串cols[0]转换成Int型,但是从上面获取到的cols[0]却是 “1 9”,它无法转换成int型,所以抛出了异常。
所以我的程序错在cols[0]的获取是有错误的(我的本意是分别获取到1 和9放到cols数据中,再分别转换成int型),通过修改源程序正确的获取cols数组的数据,则以上问题解决。