Вычисление среднего из файла CSV
У меня есть CSV-файл в следующем формате:
City,Job,Salary Delhi,Doctors,500 Delhi,Lawyers,400 Delhi,Plumbers,100 London,Doctors,800 London,Lawyers,700 London,Plumbers,300 Tokyo,Doctors,900 Tokyo,Lawyers,800 Tokyo,Plumbers,400 Lawyers,Doctors,300 Lawyers,Lawyers,400 Lawyers,Plumbers,500 Hong Kong,Doctors,1800 Hong Kong,Lawyers,1100 Hong Kong,Plumbers,1000 Moscow,Doctors,300 Moscow,Lawyers,200 Moscow,Plumbers,100 Berlin,Doctors,800 Berlin,Plumbers,900 Paris,Doctors,900 Paris,Lawyers,800 Paris,Plumbers,500 Paris,Dog catchers,400
Я хочу найти среднюю общую зарплату.
Это мой код:
`import java.io. *;
открытый класс A {
public static void main(String args[])
{
A a= new A();
a.run();
}
public void run()
{
String csv="C:\\Users\\Dipayan\\Desktop\\salaries.csv";
BufferedReader br = null;
String line = "";
int sum=0;
int count=0;
//String a=new String();
try {
br = new BufferedReader(new FileReader(csv));
try {
while ((line = br.readLine()) != null) {
// use comma as separator
String[] country = line.split(",");
int sal=Integer.parseInt(country[2]);
sum=sum+sal;
count++;
//System.out.println("Salary [job= " + country[0]
// + " , salary=" + country[2] + "]");
}
} catch (NumberFormatException | IOException e) {
System.out.println("NA");
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
System.out.println(sum/count);
System.out.println("Done");
}
}`
Но это показывает ошибку:
java.lang.NumberFormatException: для входной строки: «Зарплата» на java.lang.NumberFormatException.forInputString (неизвестный источник) на java.lang.Integer.parseInt (неизвестный источник) на java.lang.Integer.parseInt (неизвестный источник) в A.run (A.java:30) в A.main (A.java:9) Исключение в потоке "main" java.lang.ArithmeticException: / на ноль в A.run (A.java:46) в A. Основной (A.java:9) `
Есть ли лучший или короткий код для разбора файла CSV.