无法将数字从文件转换为双重格式

时间:2016-03-06 18:19:38

标签: java string file double

我需要将数字(用空格分割)从文件(* .txt)转换为双重格式。

文件包含双格式数字行,如“3.50 3.51 -3.49 -3.50 -3.51”。但是这段代码抛出了ParseException“Unparseable number:”3.50“”,我无法理解它为什么会发生?我尝试使用Double.parseDouble和.valueOf做同样的事情,但它总是抛出异常。

我对异常的原因感兴趣,而不是另一种解决此任务的方法。有人可以向我解释一下吗?

    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    Scanner fileI = new Scanner(new File(reader.readLine()));
    NumberFormat nf = NumberFormat.getInstance();

    while(fileI.hasNextLine())
    {
        String[] str = fileI.nextLine().split(" ");
        for (String it: str)
        {
            System.out.println(nf.parse(it).doubleValue());
        }
    }
    fileI.close();

1 个答案:

答案 0 :(得分:0)

尝试使用Double.parseDouble(String s)

如果不是您想要的,请尝试执行类似

的操作
for (String it: str)
{
    try{
        System.out.println(nf.parse(it).doubleValue());
    }catch (ParseException e){
        System.out.println("unappeasable number - "+it);
    }
}