Pregunta

Cómo evaluar la expresión matemática de la cadena en J2ME.

Por ejemplo, una cadena que contiene "2*4". Desde la cadena quiero evaluar la expresión matemática y obtener el resultado como 8 (2*4). Cómo debería hacer esto en J2ME.

En "Java ™ Platform Standard Ed. 6" "hay un paquete, a saber," javax.script "se utiliza para evaluar las expresiones matemáticas de String. Al igual que cualquier paquete o cualquier clase está disponible para que J2ME evalúe la expresión matemática de la cadena.

¿Fue útil?

Solución 2

Los siguientes son los pasos se utilizan para evaluar la expresión matemática de la cadena en J2ME

  1. Lea la expresión en una variable de cadena. Aquí la expresión está en forma infijo.
  2. Convierta la expresión en la variable de cadena en un formulario Postfix y guárdela en otra variable de cadena, a saber, "Postfix_str".
  3. Evalúe la expresión en el formulario Postfix (el valor en los datos "Postfix_STR") utilizando la pila.

Otros consejos

Si necesita manejar expresiones anidadas, simplemente escriba su propio analizador basado en pila.

Si no está familiarizado con el algoritmo, usa dos pilas, una para mantener operadores y el otro para mantener operandos.

Para el caso básico, analiza todos los operadores y operandos en sus respectivas pilas y luego evalúa al salir de dos operandos y un operador, realizando el cálculo y luego almacenando el resultado en la pila de operandos. Continúe hasta que la pila del operador esté vacía y la pila de operando solo tenga un valor (el resultado). Si se queda sin operadores y hay más de un resultado en su pila, entonces hay un error en la expresión.

Para manejar paréntesis (incluidos los paréntesis anidados), incluye operadores para los parens izquierdo y derecho. Al analizar la expresión si se encuentra con un paren derecho, comience a evaluar la expresión inmediatamente (aparece dos operandos y un operador, colocando el resultado en la pila de operando) hasta que encuentre un paren izquierdo. Luego reanude la analización de la expresión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top