[英]array index out of bounds exception in a while loop
我有這個有趣的ArrayIndexOutofBounds
異常。
代碼是這樣的:
int m = 0;
while (scan.hasNextInt())
{
intArray[m++] = scan.NextInt();
}
我只是將一堆整數掃描到數組中,但始終會收到ArrayIndexOutofBounds
錯誤。 我以為我的int m
已經被初始化為零了?
謝謝
inputString.length()
返回字符串中的字符數。 它不一定與字符串中的數字相對應。您將需要在while
語句中添加另一個條件,以確保m
不會大於intArray.length
。 另外,您可能還想通過調試器逐步檢查代碼,以准確確定何時陣列空間不足。
由於java數組是固定大小的,因此,如果您不知道輸入的大小,則應該使用ArrayList<Integer>
來存儲輸入。
數組中是否包含任何元素?
在循環的未來迭代中,m不為零,因為您在循環內將其遞增。
ArrayIndexOutofBounds表示數組不夠大,無法容納要放入其中的值的數量。 您在哪里初始化數組intArray?
如果您不知道掃描儀的預付款有多少個值(我認為是這樣),則可能要使用ArrayList。
這樣的事情應該起作用。
List<Integer> intArray = new ArrayList<Integer>();
while (scan.hasNextInt())
{
intArray.add(scan.NextInt());
}
如果需要最終結果在數組而不是ArrayLIst中,則可以使用
Integer[] newArray = (Integer[])intArray.toArray();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.