我正在使用这段代码来搜索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