【发布时间】:2016-03-06 18:19:37
【问题描述】:
我需要将文件 (*.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();
【问题讨论】:
-
我没有收到您描述的错误。你的代码对我来说很好用。
-
这很可能是由于您的语言环境 - 某些国家/地区需要逗号作为小数分隔符。尝试需要
Locale参数的getInstance版本。您可以提供类似Locale.US的内容。