И почему string.indexOf("\t") возвращает 0 я так и не понял((((( Но я сделал по другому с:
ArrayList<Integer> list = new ArrayList<>();
        int i = 0;
        for (Character ch : string.toCharArray()){
            if(ch == '\t'){
                list.add(i);
            }
            i++;
        }
        if (string == null || string.equals(null) || string.isEmpty())
            throw new TooShortStringException();
        if (list.size() < 2)
            throw new TooShortStringException();
//        if(string.indexOf("\t") < 2)
//            throw new TooShortStringException();
//        System.out.println(string.indexOf("\t")); // return 0 ???????
        return string.substring(list.get(0) + 1, list.get(1));
все равно не принимает