【发布时间】:2015-04-25 09:18:51
【问题描述】:
我有一个CSV文件,内容是这样的:
Country,Player,Runs,ScoreRate,MatchDate,Weekday,Ground,Versus,URL
Afghanistan,Mohammad Shahzad,118,97.52,16-02-2010,Tue,Sharjah CA Stadium,Canada,../Matches/MatchScorecard_ODI.asp?MatchCode=3087
Afghanistan,Mohammad Shahzad,110,99.09,01-09-2009,Tue,VRA Ground,Netherlands,../Matches/MatchScorecard_ODI.asp?MatchCode=3008
Afghanistan,Mohammad Shahzad,100,138.88,16-08-2010,Mon,Cambusdoon New Ground,Scotland,../Matches/MatchScorecard_ODI.asp?MatchCode=3164
Afghanistan,Mohammad Shahzad,82,75.92,10-07-2010,Sat,Hazelaarweg,Netherlands,../Matches/MatchScorecard_ODI.asp?MatchCode=3153
我必须找到阿富汗球员在 2010 年的总得分。
我写了一个代码,但是它的显示和异常和输出
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at A.main(A.java:38)
35135
但是,输出应该是 28 左右。
这里是代码。
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class A {
public static void main(String args[]) throws FileNotFoundException
{
String csv="C:\\Users\\Dipayan\\Desktop\\odi-batting.csv";
BufferedReader br=new BufferedReader(new FileReader(csv));
String line=" ";
int sum=0;
int count=0;
int []a=new int[10000];
try {
br.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
while((line=br.readLine())!=null)
{
String [] f= line.split(",");
if((f[4]="2010") != null)
{
a[count]=Integer.parseInt(f[2]);
sum=sum+a[count];
count++;
}
}
} catch (NumberFormatException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(sum);
}
}
【问题讨论】:
-
if((f[4]="2010") != null)对我来说没有意义。您正在将字符串“2010”分配给数组中位置 4 的元素,然后询问它是否不为 null,这将始终返回 true。