我正在電影租賃程序和我需要編寫一個字符串數組到Movie對象的ArrayList。一切都編譯正確,但是當它運行時,我得到一個字符串索引超出界限的錯誤。下面是用於該方法的代碼:異常在線程「主」 java.lang.StringIndexOutOfBoundsException:字符串索引超出範圍:1
public static void arrayToList(Store store, String[] array)
{
String title;
int copies;
int index = -1;
for(int i = 0;i < array.length;i++)
{
index = getIndex(array[i]);
title = array[i].substring(0,index + 1);
copies = Integer.parseInt(array[i].substring(index+1,array[i].length()));
store.addMovie(title,copies);//adds movie to arrayList
}
}
public static int getIndex(String line)
{
boolean found = false;
int index =0;
for(int i = 0;i < line.length();i++)
{
if(line.charAt(i) == ';')
{
index = i;
}
}
return index;
}
的getIndex()方法得到,因此,當它從外部文件中讀取的電影拷貝的標題和號碼之間插入的分號的索引二者皆可被分離出來,然後用作參數來創建一個Movie對象。
爲什麼我收到的索引出界失誤有什麼想法?
下面是完整的錯誤消息:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.substring(String.java:1950)
at MovieRentals.MovieRunner.arrayToList(MovieRunner.java:158)
at MovieRentals.MovieRunner.main(MovieRunner.java:32)