web_dev
@web_dev

Наиболее рациональный способ определить отрицательное число в String?

Здравствуйте,
тут ради интереса, для себя пишу вычислитель математического выражения.
И вот интересный момент. Хочется красиво распознавать отрицательное это число или же операнд?
"Брут-форсом" конечно же это решить можно, но хочется как-то красиво, а ничего умного в голову не приходит...

Есть идеи? )) Спасибо.
Например из таких выражений. Определить, это отрицательное число, а не операнд и наоборот, - это операнд, а не отрицательное число.

"1-1"
"1 -1"
"1- 1"
"1 - 1"
"6 + -( -4)"
"6 + -(4)"


и так д.. Со скобками - это не проблема, для этого есть алгоритм специальный, который раскладывает по стекам, операнды и числа.
  • Вопрос задан
  • 379 просмотров
Пригласить эксперта
Ответы на вопрос 2
mayton2019
@mayton2019 Куратор тега Java
Bigdata Engineer
Есть хорошая поговорка про пудинг.

Вобщем для расчета значение математического выражения - его надо вычислить. Никакие брутфорсы скорее всего не помогут. Выражение может потребовать расчетов функций. И их надо провести. Как - это уже другой вопрос но ясно что не в строках.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Преобразование из инфиксной нотации(линк)
Для операций вроде −x, являющихся как бинарными, так и унарными, нужна модификация: при обнаружении подобной операции система смотрит на предыдущий символ и определяет, чем будет минус, бинарной операцией или унарной функцией. Соответственно, в стеке и ОПЗ нужны разные символы для бинарного и унарного минуса.


PS: перепостил без говна и сарказма. Можно отмечать решением.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы