Используя Java, я пытаюсь разработать метод с использованием рекурсии для анализа строки вида:
(PART0(PART1(PART2)(PART3)))
Я хочу, чтобы метод разделил соответствующие строки. Я хочу, чтобы этот метод дал мне возможность выполнять некоторую логику для каждой части строки без скобок, включенных в этот порядок:
PART2
PART3
PART1
PART0
Вот как выглядит мой метод:
private void check(String stmt) throws Exception {
System.out.println(stmt);
int firstIndex = 0;
int lastIndex = 0;
while(firstIndex !=-1){
firstIndex = stmt.indexOf('(');
lastIndex = stmt.lastIndexOf(')');
check(stmt.substring(firstIndex+1,lastIndex));
}
}
Вот мой вывод:
(PART0(PART1(PART2)(PART3)))
PART0(PART1(PART2)(PART3))
PART1(PART2)(PART3)
PART2)(PART3
В основном это разбивается на эту часть: ЧАСТЬ1 (ЧАСТЬ2) (ЧАСТЬ3)
Есть ли более элегантный способ сделать это?