[ Foro de Java ]

String

16-Sep-2015 04:40
milena giraldo
1 Respuestas

Buenas noches mi pregunta  es
si uno entra por un txtfield una cadena de cálculos como hacer para calcular  teniendo en cuenta las prioridades de los operadores,


23-Sep-2015 23:41
Nacho Cabanes (+83)

No es algo trivial. Lo habitual es crearse un "Parser", que vaya leyendo carácter por carácter, analizando cuándo se ha completado un "token" (un número o un operador) y llamando a funciones auxiliares que procesen las operaciones teniendo en cuenta al menos dos prioridades distintas: multiplicación / división y en segundo lugar sumas / restas.

Lo dicho, no es fácil. Si las expresiones en sí van a ser muy simples (cosas como "3+4*5"), puedes intentar buscar ciertos substrings (primero *, por ejemplo) y extraer el número que hay a su izquierda y a su derecha, operar y reemplazar esa multiplicación por su resultado. Pero incluso esa forma de atacar el problema es muy trabajosa y se queda corta si hay detalles adicionales, como paréntesis.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)