Тема: Ітератор шляхів
Є рандом стрічка виду :"[string1].string2.some.[.].[new].[].lastthing.main.[string[substring].[substring2]].[this.is.a.one.substring].[gergregertgerggrgre.gt.[ff]].somemoretext.[[this].is.[also].[one.[substring]]]."
Шляхом називається стрічка, яка використовує розділювач '.' для поділу себе на елементи.
Елементом є стрічка між розділювачами.
Початок і кінець шляху також вважаються розділювачами. '.' є розділювачем, якщо він не обмежений квадратними дужками.
Елементи можуть бути взяті у квадратні дужки для того, щоби мати можливість містити в собі символи '.', і інші символи '[', ']'. Елемент вважається взятим в квадратні дужки, якщо кількість відкритих квадратних дужок рівна кількості закритих. Вважати, що ітератор повинен працювати тільки з правильними вхідними стрічками.
Створити ітератор шляху PathIterator. Його метод next() повинен повертати елементи стрічки в такому порядку, в якому вони зустрічаються в шляху. Елементи взяті в квадратні дужки повертаються без квадратних дужок. Метод hasNext() повинен повертати true, якщо ще не всі елементи шляху повернено і false в іншому випадку. При виклику метода remove(), повиннен викидатися java.lang.UnsupportedOperationException.
Потрібен хоча б натяк як має виглядати метод next()...