Как оценить математическое выражение из строки в J2ME
-
27-09-2019 - |
Вопрос
Как оценить математическое выражение из строки в J2ME.
Например, строка, содержащая «2 * 4». Из строки, которую я хочу оценить математическое выражение и получить результат как 8 (2 * 4). Как я должен сделать это в J2ME.
В «стандарте платформы Java ™ ™ Ed. 6» есть пакет, а именно «javax.script» используется для оценки математических выражений из String.ikik, что любой пакет или любой класс доступен для j2me для оценки математического выражения из строки.
Решение 2
Ниже приведены шаги для оценки математического выражения из строки в J2ME
- Прочитайте выражение в строке переменную. Экспрессия находится в форме инфикса.
- Преобразуйте выражение в строковую переменную в форму PostFix и храните ее в другой строковой переменной, а именно «PostFix_str».
- Оцените выражение в форме PostFix (значение в данных «PostFix_Str»), используя стек.
Другие советы
Если вам нужно обрабатывать вложенные выражения, просто напишите свой собственный парсер на основе стека.
Если вы не знакомы с алгоритмом, вы используете два стека, один для проведения операторов, а другой для проведения операндов.
Для основного случая вы проанализируете все операторы и операнды в соответствующие стеки, затем оценивают, выскакивая два операнда и оператора, выполняющие расчет, а затем сохранить результат назад на стек операнда. Продолжайте до тех пор, пока стек оператора не будет пуст, и стек операнда имеет только одно значение (результат). Если у вас закончится операторы, и в вашем стеке есть более одного результата, появляется ошибка в выражении.
Чтобы обрабатывать круглые скобки (в том числе вложенные скобки), которые вы включаете операторы для левых и правых друзей. При расстановке экспрессии, если вы столкнулись с правым парнем, немедленно начинаете оценить выражение (выскакивать два операнда и оператор, размещение результата обратно в стек операнда) до тех пор, пока не столкнулся с левым патенком. Затем возобновите разборщику выражения.