Я бы не стал использовать простые методы String.Вещи становятся довольно сложными с течением времени;даже если выполняется относительный разбор прямого рекурсивного спуска (подход сверху вниз).
Следующим самым простым (в краткосрочном плане) шагом было бы выяснить, достаточно ли грамматика проста для обработки с помощью регулярных выражений.
Но если вы использовали компиляторы компилятора (эквиваленты yacc, bison или java, такие как Antlr, java_cup), это похоже на хороший вариант использования.И даже если у вас нет, может быть, было бы хорошо, чтобы посмотреть;Antlr, кажется, наиболее часто используется, я использовал java_cup несколько лет назад, и он отлично работал для меня.