parser java android math parsing

parser - ¿Qué es una buena biblioteca para analizar expresiones matemáticas en java?



math parser dll (5)

Soy un desarrollador de Android y como parte de mi próxima aplicación, tendré que evaluar una gran variedad de ecuaciones y expresiones matemáticas creadas por el usuario. Estoy buscando una buena biblioteca de Java que sea liviana y pueda evaluar expresiones matemáticas usando variables definidas por el usuario y constantes, funciones trigonométricas y exponenciales, etc.

He mirado alrededor y Jep parece ser popular, pero me gustaría escuchar más sugerencias, especialmente de personas que han usado estas bibliotecas anteriormente.


Esto no se ajusta exactamente a mis condiciones iniciales, pero encontré un maravilloso analizador escrito en C ++. Estoy intentando descubrir el soporte de código nativo de Android para ver si puedo usarlo. Es exactamente lo que necesito.

Aquí está la documentación para el proyecto.
http://www.codeproject.com/KB/recipes/MathieuMathParser.aspx


Hace un tiempo escribí un Evaluador de expresiones matemáticas simple pero capaz, que es gratuito y de código abierto. Su principal ventaja es ser rápido y pequeño: ambos son buenos con los dispositivos manuales. Si satisface su necesidad, puede usarlo.

Características principales:

  • Operadores matemáticos básicos, con precedencia inferida (^ * × · / ÷% + -).
  • Precedencia explícita con paréntesis.
  • Multiplicación implícita de subexpresiones entre corchetes.
  • Corrija la asociatividad a la derecha de exponenciales (operador de potencia).
  • Soporte directo para números hexadecimales con el prefijo 0x.
  • Constantes y variables
  • Operadores extensibles
  • Funciones extensibles.
  • 20 KiB de huella.

Ejemplo

MathEval math=new MathEval(); math.setVariable("Top", 5); math.setVariable("Left", 20); math.setVariable("Bottom",15); math.setVariable("Right", 60); System.out.println("Middle: "+math.evaluate("floor((Right+1-Left)/2)"));


Hay una nueva herramienta comercial llamada formula4j , que puede ser de interés para algunos.



JEval es una buena alternativa. Abandoné Jep debido a que se volvió comercial. La única preocupación es que JEval parece estar un poco dormido en este momento (último lanzamiento en 2008).