このコードを使用してArrayList
を検索しています。私はstr.length()
を使って検索フィールド値の長さを読みました。問題は、if(movieArrayList.get(i)
部分に「インデックスが範囲外です」例外がスローされることです。入力した検索がArrayList
にある最短のタイトルよりも長いため、.substring(0,stringSize)
と関係があることがわかります。この問題を解決する方法がわかりません。文字列長の問題
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");
}
}
}
}
}
}
}
* * "私はこの問題を修正するかどうかはわからない" どのように文字列をカットし、 'startsWith'を使用していないでしょうか? – Tom
はサイズが1でなければなりません – localplutonium