为了账号安全,请及时绑定邮箱和手机立即绑定

使用.split()报错数组越界怎么处理?

使用.split()报错数组越界怎么处理?

动感光波biubiubiubiu 2018-05-27 12:38:59
public static void showTotalScoreAvg() throws IOException{             double sum = 0;             BufferedReader in = new BufferedReader(new FileReader(path));             String studentScore;             while((studentScore = in.readLine()) != null)             {                 double mathScore = Double.parseDouble(studentScore.split("\t")[2]);                 double englishScore = Double.parseDouble(studentScore.split("\t")[3]);                 double computerScore = Double.parseDouble(studentScore.split("\t")[4]);                 double totalScore = mathScore + englishScore +computerScore;                 sum = sum + totalScore;                 count++;                 if(MinTotalScore > totalScore)                 {                     MinTotalScore = totalScore;                 }                 if(MaxTotalScore < totalScore)                 {                     MaxTotalScore = totalScore;                 }                 studentScore = in.readLine();             }             double totalScoreAvg = sum/(double)count;             System.out.println("总成绩平均分为:"+ totalScoreAvg);in.close();       }
查看完整描述

3 回答

?
小草1434

TA贡献106条经验 获得超23个赞

在写出这种取具体数组下标语句前,我有个建议,先判断下数组长度。

目前该问题描述的代码是因为该字符串不符合程序预期的长度[文件中体现的分数没有超过2个  /t]

查看完整回答
1 反对 回复 2018-05-27
?
动感光波biubiubiubiu

TA贡献2条经验 获得超0个赞

已解决

查看完整回答
反对 回复 2018-05-27
  • 3 回答
  • 0 关注
  • 1735 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信