Исправление исключения IndexOutOfBounds в ArrayList - PullRequest
0 голосов
/ 27 октября 2018

Я пытаюсь создать String ArrayList, который хранит все слова в предложении. В настоящее время я пытаюсь добиться этого, находя индексы пробелов и сохраняя их в массиве. Arraylist для пространств работает, однако, Arraylist для слов нет. Значения для строкового массива - это подстрока между индексами двух пробелов. Пожалуйста, помогите.

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

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

Есть более простой способ сделать это.

Предположим, у вас есть следующая строка со словами:

stringWithWords = "This is my string";

Сначала вы можете разбить строку на массив слов:

String wordsArray[] = stringWithWords(" ");

После этого вы можетепреобразовать массив в ArrayList:

List<String> wordsArrayList = new ArrayList<String>();
wordsArrayList = Arrays.asList(wordsArray);
0 голосов
/ 27 октября 2018

Когда x равно size()-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)));
}
...