请使用此代码帮助我...我正在打开一个csv文件,其内容在下面给出,并且我正在尝试从中提取数字,但是它显示了异常....请帮助

import java.io.*;
import java.util.*;

public class FDS2
{
   public static void main(String[] args) throws IOException
    {
     ArrayList<String> al1 = new ArrayList<String>();
     ArrayList<Integer> al2= new ArrayList<>();

    try
    {
        BufferedReader finp = new BufferedReader(new FileReader("ex3.csv"));
        String str ;
        String strarr[];

        while((str=finp.readLine())!=null)
        {
            strarr = str.split(",") ;

             for(int i=0;i<strarr.length;i++)
             {
                 al1.add(strarr[i]);
             }


             for(int i=0;i<al1.size();i++)
             {
                 if (Character.isDigit(al1.get(i).charAt(0))==false)//||(al1.get(i)==null))
                 {
                     al1.remove(i);
                 }
                 else
                 {
                    System.out.println(al1.get(i));
                 }
             }

             for(int i=0;i<al1.size();i++)
             {
                 al2.add(Integer.parseInt(al1.get(i)));
                 //System.out.println(b.get(i));
             }

        }
    }

    catch(IOException e)
        {
            System.out.println(e);
        }

     System.out.println(al2);

    }
}


我的csv文件是这样的:

before,after,
100,109,
93,125,(Highly unexpected!)
106,104,(No change)
115,101,

最佳答案

if (Character.isDigit(al1.get(i).charAt(0))==false)//||(al1.get(i)==null))
{
    al1.remove(i);
}


不判断您尝试执行此操作的方式(我建议使用OpenCSV),但我相信您的错误是您正在按索引删除元素,因此问题是,一旦您从中删除了第0个元素该列表的a1.size()将为1,并且您的remove循环已经终止,而没有删除所有文本元素。

09-25 21:07