Что такое хорошая библиотека для парсинга математических выражений в Java? [закрытый]

Я - Разработчик Android и как часть моего следующего приложения, я должен буду оценить большое разнообразие созданных математических выражений и уравнений пользователя. Я ищу хорошую библиотеку Java, которая легка и может оценить математические выражения с помощью пользовательских переменных и констант, аккуратных и показательных функций, и т.д.

Я озирался, и Jep, кажется, популярен, но я хотел бы услышать больше предложений, особенно от людей, которые пользовались этими библиотеками прежде.

20
задан CodeFusionMobile 9 February 2010 в 05:03
поделиться

3 ответа

JEval - хорошая альтернатива. Я отказался от Jep из-за того, что он стал коммерческим. Единственное беспокойство вызывает то, что JEval, похоже, в данный момент немного бездействует (последний выпуск в 2008 году).

3
ответ дан 30 November 2019 в 01:34
поделиться

Некоторое время назад я написал простой, но способный Math Expression Evaluator , который является бесплатным и имеет открытый исходный код. Его главное преимущество в том, что он быстрый и крошечный - и то, и другое хорошо для портативных устройств. Если он соответствует вашим потребностям, вы можете его использовать.

Основные характеристики:

  • Основные математические операторы с предполагаемым приоритетом (^ * × · / ÷% + -).
  • Явный приоритет в круглых скобках.
  • Неявное умножение подвыражений в квадратных скобках.
  • Правильная правоассоциативность экспонент (степенной оператор).
  • Прямая поддержка шестнадцатеричных чисел с префиксом 0x.
  • Константы и переменные.
  • Расширяемые операторы.
  • Расширяемые функции.
  • 20 КБ занимаемой площади.

Пример

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)"));
3
ответ дан 30 November 2019 в 01:34
поделиться

Это не совсем соответствует моим начальным условиям, но я нашел замечательный парсер, написанный на C++. Я пытаюсь разобраться с поддержкой нативного кода в Android, чтобы понять, смогу ли я его использовать. Это именно то, что мне нужно.

Вот документация по проекту.
http://www.codeproject.com/KB/recipes/MathieuMathParser.aspx

0
ответ дан 30 November 2019 в 01:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: