Добрый вечер. Задача решена верно, но не проходит тестирование по пункту: "В случае, если строка, переданная в метод getPartOfString содержит менее 2 табуляций должно возникнуть исключение TooShortStringException". На деле всё работает верно. Если валидатор требует предварительного подсчёта табуляций, то мне не нравится такая реализация, поскольку в код добавляются лишние инструкции, делающие код менее эффективным. Между табуляциями Метод getPartOfString должен возвращать подстроку между первой и второй табуляцией. На некорректные данные бросить исключение TooShortStringException. Класс TooShortStringException не менять. Требования: 1. Класс TooShortStringException должен быть потомком класса Exception. 2. Метод getPartOfString должен принимать строку в качестве параметра. 3. В случае, если строка, переданная в метод getPartOfString содержит менее 2 табуляций должно возникнуть исключение TooShortStringException. 4. Метод getPartOfString должен возвращать подстроку между первой и второй табуляцией.
public class Solution {
    public static String getPartOfString(String string) throws TooShortStringException {
        int[] index = new int[2];
        int tabIndex = 0;
        for (int i = 0; i < 2; i++){
            tabIndex = string.indexOf("\t", tabIndex);
            if (tabIndex != -1) {
                index[i] = tabIndex;
                tabIndex++;
            }
            else throw new TooShortStringException();
        }
        return string.substring(index[0] + 1, index[1]);
    }

    public static class TooShortStringException extends Exception {
    }

    public static void main(String[] args) throws TooShortStringException {
        System.out.println(getPartOfString("\tJavaRush - лучший сервис \tобучения Java\t."));
    }
}