Проверка вложенной строки в Java - PullRequest
1 голос
/ 28 марта 2009

Привет, каков наилучший способ проверки вложенной строки в Java?

образец допустимой строки: [aaaa {bbb}] в то время как [{ss]} нет.

Спасибо!

Ответы [ 4 ]

5 голосов
/ 28 марта 2009

Я бы использовал стек. Перебирайте символы в строке, и каждый раз, когда я вижу открывающую скобку, я помещаю соответствующую закрывающую скобку в стек. Каждый раз, когда я вижу закрывающую скобку, я проверяю, соответствует ли она вершине стека. Если так, я вытаскиваю персонажа из стека и продолжаю. В противном случае это недопустимая строка.

1 голос
/ 28 марта 2009

Разделить строку на "{" и "}", одновременно выталкивая токены в стек. Посмотрите, все ли подтвердится к тому времени, когда вы достигнете последнего "}".

0 голосов
/ 28 марта 2009

Мне нравится стек ответа, но в зависимости от правил для допустимых строк, это может быть сложно. Если вы можете создать грамматику для описания допустимых строк, вы, вероятно, могли бы сгенерировать парсер, используя что-то вроде ANTLR .

0 голосов
/ 28 марта 2009

Боюсь, вам нужно быть немного более конкретным. Если вы просто ищете определенную подстроку, есть String.contains(), если вы хотите проверить что-то вроде «aaabbb cccddd eeefff», где вы должны проверить, есть ли ровно три буквы каждой, тогда это работа для регулярных выражений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...