我正在使用這段代碼來搜索ArrayList
。我使用str.length()
來讀取搜索字段值的長度。問題在於它會在if(movieArrayList.get(i)
部分拋出「索引超出範圍」異常。我知道它與.substring(0,stringSize)
有關,因爲我輸入的搜索時間比ArrayList
中的最短標題長。我不知道如何解決這個問題。字符串長度問題
class SearchListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
Object[] movieList = movieArrayList.toArray();
String searchValue = SearchCombo.getSelectedItem().toString();
// System.out.println(searchValue);
if (TelevisionBox.isSelected()) {
switch (searchValue) {
case "Title" : {
// System.out.println(searchValue);
String str = SearchField.getText();
int stringSize = str.length();
for (int i = 0; i < movieArrayList.size(); i++) {
// System.out.println(searchValue);
if (movieArrayList.get(i).getTitle().substring(0, stringSize).equalsIgnoreCase(str)
&& str.substring(0, 2).equals("Te")) {
System.out.println(str);
ResultArea.append(str.toString() + "\n");
}
}
}
}
}
}
}
* 「我不知道如何解決此問題」 *如何不切割String和使用'startsWith'? – Tom
應該是大小 - 1 – localplutonium