GetSpans для Spanned String возвращается из строя?

Я использую следующий код, чтобы просеять Spanned String, сохраняя весь выделенный текст в виде строки в массиве:

StyleSpan[] spans = storyText.getSpans(0,
        storyText.length(), StyleSpan.class);
List<String> boldedWords = new ArrayList<String>();
for (StyleSpan span : spans) {
    if (span.getStyle() == Typeface.BOLD) {
        //start
        int s = storyText
                .getSpanStart(span);
        //end
        int e = storyText.getSpanEnd(span);
        boldedWords.add(storyText.subSequence(
                s, e).toString());
    }
}

String[] array = boldedWords
        .toArray(new String[boldedWords.size()]);

Тем не менее, строки, которые я получаю в массиве, выходят из строя. Например:

Приговор может быть (CAPS представляет жирный текст):

storyText = "This ADJECTIVE NOUN is VERB"

Массив, который я бы получил, будет следующим: "Существительное, глагол, Прилагательное" в этом порядке. Это должно быть: "Прилагательное, существительное, глагол"

Любое понимание того, почему это может произойти?