Я ищу способ проверить, если строка является математическим выражением, как то естьуправления, если строка представляет собой математическое выражение
х + у -sin (1) * 99k
Я не хочу оценивать выражение, но понимаю, что строка написана правильно.
Есть ли какая-то библиотека Java для этого?
ОБНОВЛЕНИЕ: Извините, это не уравнение, а только выражение (ничего '='). меня думать о возможном решении:
- Укажите переменные, используемые
- заменить все переменные с «1»
- оценить новую строку с JEval
- если программа сгенерирует исключение, то неправильное выражение
Что вы думаете об этом?
Благодаря
Должно ли это выражение быть правильным? Если нет, вы можете просто проверить, содержит ли он «=». – Oceans
не уверен в библиотеке, но вы можете реализовать BNF для нее. но я уверен, так как вы действительно не хотите его оценивать, есть более простой способ. – nafas
Дубликат этого http://stackoverflow.com/questions/2226863/whats-a-good-library-for-parsing-mathematics- выражения-в-java? – Michael