else if (args.length == 5)
{
String firstyear = args[3];
String secondyear = args[4];
String datayear = temp[0];
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Date first = df.parse(firstyear);
Date second = df.parse(secondyear);
Date datas = df.parse(datayear);
weekday = convertDateToWeekDay(temp);
if (weekday == day || day == 0);
{
if (temp[8].contentEquals(drawtype)
|| drawtype.contentEquals("A")) {
if ((datas.equals(first)) || (datas.equals(second))
|| ((datas.after(first)) && (datas.before(second)))) {
if (choice == 1 || choice == 2) {
for (int count = 0; count < jackpot.length; count++) {
jackpot[count] = Integer
.parseInt(temp[count + 1]);
jackpotnumbers[jackpot[count] - 1]++;
}
}
if (choice == 2) {
bonus = Integer.parseInt(temp[7]);
if (temp[8].contentEquals(drawtype)
|| drawtype.contentEquals("A"))
bonusnumbers[bonus - 1]++;
}
}
}
}
}
}
這是我爲大學所做的一個項目。其目的是分析兩個日期和不同抽籤之間的樂透信息。它給這個錯誤:我在一個java項目中得到了一個StringOutOfBoundsException
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
它發生在兩個日期從命令line.It從文件中讀取一行,並把它變成一個數組所謂的氣溫。該程序的其餘部分工作正常,但如果它進入這部分崩潰,並給出了這個錯誤。任何人都可以發現導致錯誤的原因。我也知道我可以寫得更好,但是我希望它在我專注於編寫好代碼之前先工作。
編輯:bonusnumbers和jackpotnumbers都是45長的int數組。long.temp是一個字符串數組,其中temp [0]是日期,如10/07/1994.jackpot是一個長度爲45的int數組。 if(weekday == day || day == 0);這是爲了檢查從文件中讀取的日期是否是由用戶提供的特定日期。 我不知道你的堆棧跟蹤的意思,或使用debugger.I是新的編程
編輯2:我知道錯誤是在這一部分,因爲它只有當我運行此section.I可以運行死機沒有它的代碼crashing.After此錯誤的其他部分,它只是說,每個方法
那麼哪一行拋出異常?代碼示例要簡短一些但完整的程序*只是*表明問題。如果你可以格式化你的代碼,它也會*真的*幫助 - 如果沒有正確的縮進就很難閱讀。 –
你可以粘貼堆棧跟蹤的前10行嗎? –
嘗試將其縮小到更具體的代碼行。你向我們展示的代碼中有許多變量沒有在代碼的那部分中定義/分配(它們可能在之前,但我們不知道這一點)。使用你的調試器,在哪裏發生異常? –