Re: 請問java.lang.IndexOutOfBoundsException?
這其實容易判斷阿
: : 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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):