我需要将文件(* .txt)中的数字(以空格分割)转换为双格式。无法将数字从文件转换为双格式
文件包含双格式数字行,如“3.50 3.51 -3.49 -3.50 -3.51”。但是这段代码抛出ParseException“不可解析的数字:”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();
,我没有得到你所描述的错误。你的代码对我来说工作得很好。 –
这很可能是由于您的语言环境 - 有些国家/地区需要逗号作为小数点分隔符。尝试使用['getInstance'](https://docs.oracle.com/javase/7/docs/api/java/text/NumberFormat.html#getInstance(java.util.Locale))的版本,该版本需要[ Locale'](https://docs.oracle.com/javase/7/docs/api/java/util/Locale.html)参数。你可以提供类似'Locale.US'的东西。 – YoYo