修复 ArrayList 中的 IndexOutOfBounds 异常



>我正在尝试制作一个将所有单词存储在句子中的字符串数组列表。目前,我正在尝试通过查找空间的索引并将其存储在数组中来实现这一目标。空格的数组列表有效,但是单词的数组列表不起作用。字符串数组列表的值是两个空格的索引之间的子字符串。请帮忙。

for(int x = 0; x < spaces.size(); x++) {
words.add(post.substring(spaces.get(x) + 1, spaces.get(x + 1)));
}

xsize()-1时,您将调用x+1,这将等于size()这不是一个有效的索引

由于您正在向前看一个索引,因此仅循环到小于size()-1

for(int x = 0; x < spaces.size()-1; x++) {
words.add(post.substring(spaces.get(x) + 1, spaces.get(x + 1)));
}

有一种更简单的方法可以做到这一点。

假设您有以下带有单词的字符串:

stringWithWords = "This is my string";

首先,您可以将字符串拆分为单词数组:

String wordsArray[] = stringWithWords(" ");

之后,您可以将数组转换为数组列表:

List<String> wordsArrayList = new ArrayList<String>();
wordsArrayList = Arrays.asList(wordsArray);

最新更新