您好我已经创建了一个程序,它从csv文件中读取一些带有扫描器类的数据。然后调用该函数下方从读取的csv文件中提取信息。
private void processLine(String inputLine){
try
{
String [] data = inputLine.split(",") ;
Integer compNumber=checkNumCom(data[0]);
int scoreLength = data.length-4;
int scores[] = new int[Darts.scoreNumber];
String [] temp = new String[scoreLength];
System.arraycopy(data,4,temp,0,scoreLength );
if(checkName(data[1]) && compNumber != null && checkStrings(data[2])
&& checkStrings(data[3]) && checkScores(temp) ){
Name name = new Name(data[1]);
String country = data[2];
String level = data[3];
for(int i=0;i<scoreLength;i++){
scores[i]= Integer.parseInt(temp[i].trim());
}
Darts obj = new Darts(compNumber,name,country,level,scores);
competitors.addCompetitor(obj);
}
}
catch(ArrayIndexOutOfBoundsException e){
String error = "Error in: " + inputLine + " index position " +
e.getMessage();
System.err.println(error);
}
}
这是csv包含的数据样本:
108,Paul Martin,France,Novice,3,4,5,2,2
109,Jose Mario Gomez,Portugal,Pro,5,3,5,2,3
这是一个检查从文件中读取的名称是否正确的函数
private boolean checkName(String name){
String[] name1 = name.split(" ");
if(!name.isEmpty() && name1.length >1 && name1.length<4)
{
return true;
}
else
{
System.err.println("The competitor name is not acceptable");
return false;
}
}
即使csv文件中的数据是正确的,这条消息也一直出现。我也运行调试器无法搞清楚。有人可以帮忙吗?