Как отменить Exeption в equals?

260
04 июня 2017, 18:48

Как отменить Exeption в equals?

 public List<SubTitleModel> vttParsingStart(){
  for (int i = 0; i < stringList.size(); i++) {
        textLine = stringList.get(i);
        textLine = textLine.trim();
        if (textLine.substring(13, 16).contains("-->")){
            allTextVtt="";
            readLineBoolean=true;
            subTitleModel=new SubTitleModel();
            subTitleModel.setTimeStart( parseTimeCode(textLine.substring(0, 12)) );
            subTitleModel.setTimeEnd( parseTimeCode(textLine.substring(17)) );
        }
        if (readLineBoolean){
            if (textLine.isEmpty()) {
                readLineBoolean=false;
                subTitleModel.setText( allTextVtt );
                subTitleModelArrayList.add(subTitleModel);
                continue;
            }
            allTextVtt+=textLine;
        }
    }
    return subTitleModelArrayList;
}

На этой строчке я испльзовал и constains и eqluals. Все равно выкидывает Exeption if (textLine.substring(13, 16).contains("-->")){

Что я хочу сделать? Я хочу чтобы если в строке нет --> то курсор двигался дальше.

Да я соглаасен что можно просто добавить на проверку еще и WebVTT из - за которого и вылетает Exeption. Но все же в данном файле кроме WebVTT много разных динамический символов. И делать для каждого проверку это не вариант.

Как использовать equals или constaint чтобы не выыкидывало Exeption. Типо просто проверил есть совпадение заходишь в if. нет совпадения идешь дальше

Answer 1

У вас исключение StringIndexOutOfBoundsException, возникающее при попытке порезать строку на части, которые за пределами её длины. Вам надо лишь проверить длину строки перед её резкой. Если она меньше некоторой величины - ничего не делать.

READ ALSO
Как передать транзакцию

Как передать транзакцию

Как я мог бы передать транзакцию в другой поток и продолжить работать с этой транзакциейНужно в hibernate залочить строки в бд, и уже в другом...

311
System.exit(0) гарантирует завершение всех потоков?

System.exit(0) гарантирует завершение всех потоков?

Systemexit(0) гарантирует завершение всех потоков? В GUI программе использую множество Thread-ов, если выйти с программы с помощью System

232
Вечная жизнь программы или как сделать не закрывающуюся программу Java SE

Вечная жизнь программы или как сделать не закрывающуюся программу Java SE

Подскажите пожалуйстанужно сделать что бы программа после запуска ожидала команд и после того как команда отработала она продолжала их ждать

350
Линии в Google Maps

Линии в Google Maps

У меня есть List routePoints, который собирает местоположения:

399