我很難從.csv文件讀取字符串數值並將它們轉換爲雙精度值。下面是代碼:將.csv字符串值轉換爲雙倍
String filename = "/home/mahmoud/Desktop/CSV/remake1.csv";
BufferedReader br = null;
String line = "";
String cvsSplitBy = ",";
int val;
try {
br = new BufferedReader(new FileReader(filename));
while ((line = br.readLine()) != null) {
// use comma as separator
String[] country = line.split(cvsSplitBy);
val = Integer.parseInt(country[4]);
System.out.println(val);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
System.out.println("Done");
}
當我編譯程序,我得到主要出現以下錯誤「在線程異常‘’java.lang.NumberFormatException:對於輸入字符串:‘6.55’
這裏是內容
2012-12-03,5.63,6.57,5.32,6.55,5816300,6.55
2012-11-01,4.66,5.68,4.37,5.59,5752000,5.59
:.csv文件的2012-10-01,5.27 ,5.40,4.42,4.67,5958000,4.67
2012-09-04,5.91,6.56,5.21,5.26,5930600,5.26
就如何解決這一問題有何建議? 謝謝
如果它是一個'float',爲什麼你使用'的Integer.parseInt( )'?聲明'float val;',而是使用'Float.parseFloat()'。 – AntonH
或更好,'Double.parseDouble()' – fge
確實如此,但考慮到示例中的數字,我認爲'float'就足夠了。 – AntonH