Драсте. Решил задачу, но интел начал светит, мол, finally не заканчивается нормально из-за return. Как я понял, всё же немного неправильно так делать? Если да, то как стоило?
try {
        builder.delete(builder.length() - 5, builder.length());
    }
    finally {
        return builder.toString();
    }
}
Смысл его: попытаться убрать строку и, если уходит в outOfBounds, в любом случае произвести возврат StringBuilder-а builder.toString(), не важно, делитнута ли часть или нет. Гугл пока молчит на мои попытки узнать что-либо по этому поводу. Это вообще считается ошибкой?