Дело в том, что мне нужно решить задачи, у которых тип данных String
Например:
String bla = "5 + 10 - 5";
SystemOutPrintln(Integer.parseInt(bla));
Мне нужно получить ответ, например 10. Но, вариант выше выведет ошибку, так как символы + и - не являются целыми числами.
Как можно решить такого рода задачи, или есть другие варианты, буду признателен за дельные советы?
Ответ
Возможно несколько вариантов решения:
Написать свой интерпретатор
Подключить готовый интерпретатор, например exp4j
Подключить ScriptEngine, например JavaScript (вариант использования https://stackoverflow.com/a/3423360/690987)
Преобразовать выражение в java-код (на лету), скомпилировать и выполнить его
Сгенерировать байт-код, используя библиотеку генерации байт-кода, и выполнить его, например Byte Buddy
Комментариев нет:
Отправить комментарий