Нормализующая строка для вычисления арифметического выражения в Java - PullRequest
0 голосов
/ 18 декабря 2011

У меня есть метод, который оценивает арифметические выражения из строки, но он очень зависит от формата (все токены должны быть разделены одним пробелом):

2 + 2  
-2 + ( 7 / 5 ) * 6  

и так далее.Поэтому я хочу добавить метод Normalize(), который, в общем-то, нормализует входную строку в соответствующем формате (удаляет лишние пробелы, добавляет необходимые пробелы и обрабатывает только минус) и сигнализирует об ошибках, если таковые имеются.использовать регулярное выражение, чтобы проверить, является ли строка на самом деле выражением, но это только половина работы.Каков наилучший способ нормализации строки в этом случае?

1 Ответ

0 голосов
/ 18 декабря 2011

Вам не нужен «нормализатор». Если вы используете регулярные выражения, при написании шаблона учитывайте пробелы. Но регулярное выражение не является лучшим решением этой проблемы. Обычный подход заключается в написании парсера, посмотрите, например, JavaCC .

...