我嘗試從文本文件填充數組時遇到此錯誤。我認爲這可能與我的if
循環有關,但我確實不確定。它在myData[9]
上給我出界限錯誤。我想要做的是檢查第一個字母是否爲D
(表示以下內容是更新),然後創建更新對象。我的update.txt
文件只有10件東西填充myData
,這就是爲什麼myData[9]
給我出界限錯誤(特別是我試圖設置它等於lastThirty
)的原因。從文本文件填充時數組索引超出邊界錯誤
scan = new Scanner(file);
while (scan.hasNext())
{
String str = scan.nextLine();
String[] myData = str.split("#");
if (myData[0].equalsIgnoreCase("D"))
{
recordType = myData[0];
actionCode = myData[1];
boxID = Integer.parseInt(myData[2]);
movieID = Integer.parseInt(myData[3]);
movieTitle = myData[4];
movieGenre = myData[5];
releaseYear = myData[6];
inStock = myData[7];
totalRentals = Integer.parseInt(myData[8]);
lastThirty = Integer.parseInt(myData[9]);
updates[count] = new UpdateRecord(recordType, actionCode, boxID, movieID, movieTitle, movieGenre, releaseYear, inStock, totalRentals, lastThirty);
count++;
}
該文件的內容如下:
H#Title Town Video Mart Updates#04\24\2016
D#A#4#5#Harry Potter#Action#2001#True#50#5
D#A#4#5#Shutter Island#Suspense#2001#True#50#5
D#A#4#5#The Blind Side#Drama#2001#True#50#5
D#A#4#5#Borat#Comedy#2001#True#50#5
D#A#4#5#Bad GrandPa#Comedy#2001#True#50#5
T#Title Town Video Mart Updates#04\24\2016#5
您的數組似乎在索引9中沒有對象。向我們顯示您的文件。 – Gendarme
你的任一行只有少於10個項目,或者這個文件的行數超過了你的'updates'數組可以容納的行數(你可能想把它做成一個'List'而不是一個固定大小的數組)。如果您在代碼中指出錯誤發生在哪一行,則會更容易。 –
它發生在上面摘錄的第17行上。更新對象數組的大小爲200,並且文件中只有5個更新,所以這應該不成問題。我只是加倍檢查了txt文件,每次更新都有10個項目,更新構造函數有10個項目,我將10件事情傳遞給它。 – Thomas