我需要將文件(* .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