Я - Разработчик Android и как часть моего следующего приложения, я должен буду оценить большое разнообразие созданных математических выражений и уравнений пользователя. Я ищу хорошую библиотеку Java, которая легка и может оценить математические выражения с помощью пользовательских переменных и констант, аккуратных и показательных функций, и т.д.
Я озирался, и Jep, кажется, популярен, но я хотел бы услышать больше предложений, особенно от людей, которые пользовались этими библиотеками прежде.
JEval - хорошая альтернатива. Я отказался от Jep из-за того, что он стал коммерческим. Единственное беспокойство вызывает то, что JEval, похоже, в данный момент немного бездействует (последний выпуск в 2008 году).
Некоторое время назад я написал простой, но способный Math Expression Evaluator , который является бесплатным и имеет открытый исходный код. Его главное преимущество в том, что он быстрый и крошечный - и то, и другое хорошо для портативных устройств. Если он соответствует вашим потребностям, вы можете его использовать.
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)"));
Это не совсем соответствует моим начальным условиям, но я нашел замечательный парсер, написанный на C++. Я пытаюсь разобраться с поддержкой нативного кода в Android, чтобы понять, смогу ли я его использовать. Это именно то, что мне нужно.
Вот документация по проекту.
http://www.codeproject.com/KB/recipes/MathieuMathParser.aspx