关于java.lang.NumberFormatException异常的一个问题

qq_33679861 2017-02-27 10:40:53
请问各位java神仙,执行程序时总是提示下面这段代码的红字部分有错误。是类型转换出了问题吗?
错误如下:Exception in thread "main" java.lang.NumberFormatException: For input string: "?IHS"
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at sun.misc.FloatingDecimal.parseDouble(Unknown Source)
at java.lang.Double.parseDouble(Unknown Source)
at util.ReadTXT.toDoubleMap(ReadTXT.java:163)
错误部分代码如下:
public static Map<String,Double> toDoubleMap(String filePath){
Map<String,Double> map=new HashMap<String,Double>();
try{
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(filePath),"utf-8"));
String str;
while((str=br.readLine())!=null){//特征
String[] s=str.split(",|'| |:");
String key=s[0];//特征
for (int i=0;i<s.length;i++){
double value=Double.parseDouble(s[i]);//特征值
map.put(key, value);

}
}
br.close();
}catch (IOException ex) {
Logger.getLogger(ReadTXT.class.getName()).log(Level.SEVERE, null, ex);
}
return map;
...全文
5582 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
Exception in thread "main" java.lang.NumberFormatException: For input string: "?IHS" 需要翻译一下吗
nikyotensai 2017-02-27
  • 打赏
  • 举报
回复
楼上说得都对
墨笙弘一 2017-02-27
  • 打赏
  • 举报
回复
首先搞明白,numberFormat是因为不能转化为数字类型,所以报错了,你看看你那个输出是不是一个字符串里面夹杂着string或者其他类型呢?如果有你需要把数字单独提取出来然后在进行处理,如果是纯数字字符串当然不会报错
qq_33679861 2017-02-27
  • 打赏
  • 举报
回复
引用 4 楼 qnmdcsdn 的回复:
[quote=引用 2 楼 qq_33679861 的回复:] [quote=引用 1 楼 qnmdcsdn 的回复:] Exception in thread "main" java.lang.NumberFormatException: For input string: "?IHS" 需要翻译一下吗
请问原因是什么,怎么修改呢[/quote] 原因是出现了字符串,你在转之前先打印一下看看,里边出现了非数字类型的[/quote] 明白了,是不是文本里面的内容必须是数字形式的字符串?非数字类型的可以返回特征值吗?谢谢!
qq_33679861 2017-02-27
  • 打赏
  • 举报
回复
引用 3 楼 ryuugu_rena 的回复:
就是转化不了为double类型,你如果给个字符串“abc”,那给你转个什么样的double呢?数值又是多少?
明白了,所以文本里的内容必须是数字形式的字符串吗??
  • 打赏
  • 举报
回复
引用 2 楼 qq_33679861 的回复:
[quote=引用 1 楼 qnmdcsdn 的回复:] Exception in thread "main" java.lang.NumberFormatException: For input string: "?IHS" 需要翻译一下吗
请问原因是什么,怎么修改呢[/quote] 原因是出现了字符串,你在转之前先打印一下看看,里边出现了非数字类型的
ryuugu_rena 2017-02-27
  • 打赏
  • 举报
回复
就是转化不了为double类型,你如果给个字符串“abc”,那给你转个什么样的double呢?数值又是多少?
qq_33679861 2017-02-27
  • 打赏
  • 举报
回复
引用 1 楼 qnmdcsdn 的回复:
Exception in thread "main" java.lang.NumberFormatException: For input string: "?IHS" 需要翻译一下吗
请问原因是什么,怎么修改呢

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧