数组列表中的NumbersFormatException

时间:2017-10-25 02:51:19

标签: java csv arraylist numberformatexception

我正在尝试将员工详细信息放在CSV文件中(以FirstName,LastName,DateOfBirth,SSN,Role,Salary,Zip,Phone的形式),薪水为int。唯一的问题是,每次我尝试实现此代码时:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

import java.util.*;


public class Driver {

    //Delimiters used in the CSV file
    private static final String COMMA_DELIMITER = ",";

    public static void main(String args[])
    {
        BufferedReader br = null;
        try
        {
            //Reading the csv file
            br = new BufferedReader(new FileReader("data.csv"));

            //Create List for holding Employee objects
            List<Employee> empList = new ArrayList<Employee>();
            String line = "";
            //Read to skip the header
            br.readLine();
            //Reading from the second line
            while ((line = br.readLine()) != null) 
            {
                String[] employeeDetails = line.split(",");

                //Save the employee details in Employee object
                Employee emp = new Employee(employeeDetails[0],employeeDetails[1],
                employeeDetails[2],
                employeeDetails[3],
                employeeDetails[4],
                Integer.parseInt(employeeDetails[5]),
                employeeDetails[6],
                employeeDetails[7]);
                empList.add(emp);
            }
            for(int i = 0;i<empList.size();i++){
                System.out.println(empList);
            }
        }
        catch(Exception ee)
        {
            ee.printStackTrace();
        }
        finally{
            try{
                br.close();
            }
            catch(IOException ie){
                System.out.println("Error occured while closing the BufferedReader");
                ie.printStackTrace();
            }
        }
    }
}

我收到了NumbersFormatException错误。已经使用构造函数setter和getter创建了一个employee类。

我刚刚扫描了CSV。总有薪水是我困惑的根源。

1 个答案:

答案 0 :(得分:0)

您需要确保: Integer.parseInt(employeeDetails [5])

不要失败。所以 employeeDetails [5] 必须是可以转换为int的String。

喜欢:“5”,“123”,“567”