请使用此代码帮助我...我正在打开一个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循环已经终止,而没有删除所有文本元素。