作者JeremyJoung (J.J.)
看板java
标题Re: 请问java.lang.IndexOutOfBoundsException?
时间Wed Apr 3 19:05:51 2013
这其实容易判断阿
: : Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
: : at GradeSystem.<init>(Ccc.java:21)
Ccc.java的第21行 发生阵列溢出大小[6]
行号数一下就知道了
而且就算是不知道行数 既然溢出大小是[6] 那麽看一下哪一行有使用到阵列[6]就好
答案其实已经很清楚了 不过这题的错误关键是的split()的隐藏bug
不过这不是bug 定义上有讲得很清楚 只是通常没人知道
只是按照程式码的写法 就算是split没出包
会导致这个错误的资料输入 应该也会发生NumberFormatEx就是..........
※ 引述《PsMonkey (痞子军团团长)》之铭言:
: ※ 引述《pugboy ()》之铭言:
: : 不好意思请问各位大大
: : 我的Code原始码如下:
: : 可是却出现错误讯息?
: : Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
: : at GradeSystem.<init>(Ccc.java:21)
: : at Ccc.main(Ccc.java:51)
: : 然後我就改写String data[];成String data[] = new String[2048];
: : 小弟还是不知道问题点出在哪里
: : 烦请大大指出错误点
: : 感谢万分Orz
: String foo[] = new String[2048];
: foo = wtf();
: System.out.println(foo[6]);
: String[] wtf() {
: return new String[5];
: }
: 不知道我在讲什麽,那就把你的程式码每行都写注解
: 我之前已经柔性警告过你了
: 结果你的发问文章始终没有改善的迹象
: 这次我正式警告,下次这种文章(一开始根本没半行注解)直接执行版规 4.2
: : import java.io.*;
: : import java.util.*;
: : class GradeSystem { //GradeSystem class
: : public GradeSystem() throws IOException{
: : String data[] = new String[2048];
: : LinkedList<Grades> aGradeSystem = new LinkedList();
: : FileReader fr = new FileReader("c:\\Java\\Student.txt");//要读取的档案
: : BufferedReader br=new BufferedReader(fr);
: : Grades aGrade = new Grades();
: : String line;
: : while((line=br.readLine()) != null){ //一次读一行
: : data = line.split(" ");
: : aGrade.name=data[0];
: : aGrade.ID = data[1];
: : aGrade.lab1 = Integer.parseInt(data[2]);
: : aGrade.lab2 = Integer.parseInt(data[3]);
: : aGrade.lab3 = Integer.parseInt(data[4]);
: : aGrade.midTerm = Integer.parseInt(data[5]);
: : aGrade.finalExam = Integer.parseInt(data[6]);
: : aGradeSystem.add(aGrade); //将aGrade 加到 aGradeSystem list
: : }
: : System.out.println("元素");
: : for(int i=0; i<=aGradeSystem.size(); i++){
: : System.out.print(aGradeSystem.get(i)); //印出List的元素
: : }
: : }
: : }
: : class Grades { //Grade class 用来放 Student.txt的资料
: : String name, ID;
: : int lab1, lab2, lab3, midTerm, finalExam, totalGrade;
: : }
: : public class Ccc{ //Main class
: : public static void main(String args[]) throws IOException{
: : GradeSystem co = new GradeSystem();
: : }
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.36.98.124