Member 12861679 Ответов: 1

Синтаксический анализатор математических выражений в java


Рассмотрим выражение типа E:
123 * x + 456 * y * 12 - 200 / z
что следует правилам:
1. может содержать операнды: +,-,*,/
2. может содержать переменные (например, 'x')
3. может содержать константы (например, '123')
4.не содержит скобок.

Основное внимание следует уделять хорошему использованию принципов ООП.

Может ли кто-нибудь помочь мне написать набор классов Java для достижения этой цели?

Что я уже пробовал:

Я пробовал использовать ScriptEngine. Однако я не могу использовать эти ScriptEngine.

ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript");
System.out.println("result = " + engine.eval(expr, new SimpleBindings(vars)));

1 Ответов

Рейтинг:
2

Afzaal Ahmad Zeeshan

Это задание: чтобы вы могли изучить понятия языка программирования, ООП, структур данных.

Я не уверен, почему ScriptEngine используется, так как вы должны сделать парсер, а не показать его использование. Простое руководство по разбору математических выражений[^], в этой статье есть хороший материал по разбору выражений.