黑马程序员技术交流社区

标题: 刚刚写了个学生成绩管理系统为什么会报数组越界异常 [打印本页]

作者: 猪猪fly侠    时间: 2015-5-3 20:25
标题: 刚刚写了个学生成绩管理系统为什么会报数组越界异常
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class StuscManage {
public static void main(String[] args) throws IOException {
  // TODO Auto-generated method stub
        Student stu1 = new Student();
        Student stu2 = new Student();
        Student stu3 = new Student();
        Student stu4 = new Student();
        Student stu5 = new Student();
        ArrayList<Student> al = new ArrayList<Student>();
        al.add(stu1);  al.add(stu2);   al.add(stu3);  al.add(stu4);
        al.add(stu5);
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] st = new String[4];
        for(int i = 0;i < 5;i++){
         st[i] = br.readLine();   
         String[] s = splitSt(st[i]);
         al.get(i).setName(s[0]);
         al.get(i).setMath(Integer.parseInt(s[1]));
         al.get(i).setChinese(Integer.parseInt(s[2]));
         al.get(i).setEnglish(Integer.parseInt(s[3]));         
        }         
        for(Student Student:al){
         System.out.println(Student.toString()+"\t"+Student.getSum());
        }
}
private static String[] splitSt(String st) {
  // TODO Auto-generated method stub
  String[] s = st.split(",");
  return s;
}
}


作者: 东东西西    时间: 2015-5-3 20:34
高大上  。。看不懂
作者: 猪猪fly侠    时间: 2015-5-3 21:13
东东西西 发表于 2015-5-3 20:34
高大上  。。看不懂

囧,我也是新手,看了毕老师的模仿的
作者: 殷俊    时间: 2015-5-3 21:37
String[] st = new String[4];
        for(int i = 0;i < 5;i++){
         st[i] = br.readLine();   
         String[] s = splitSt(st[i]);
这里有问题,你数组的长度定义为4,即最后一个元素为st[3],但是你循环里面却出现了st[4],所以数组角标越界
作者: 雾以泪聚丶    时间: 2015-5-3 22:57
好尴尬的说看了半天没懂,我也是醉了!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2