Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> java math parser 
:(
    Опции темы
gelo86
Дата 15.11.2010, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 388
Регистрация: 26.10.2007

Репутация: нет
Всего: нет



Мне надо сделать интерфейс, где клиент сможет вводить математическую формулу (для получения статистики). Думаю свой парсер писать нестоит, может кто может подсказать бесплатный либ для таких целий ? Чтобы легко можно было добавлать свои функции и по возможности даже свои конструкции (например If (x == 5) then (y = n * m) else (y = q * w)  )?
PM MAIL   Вверх
jk1
Дата 15.11.2010, 22:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 40
Всего: 75



Делается это очень легко, вот простой пример
Код

// Создадим фабрику
ScriptEngineManager factory = new ScriptEngineManager();
// Затем движок Javascript. Можно и другой, но этот вполне подходит под задачу.
ScriptEngine engine = factory.getEngineByName("JavaScript");
// Выполняем подсчет
System.out.println(engine.eval("3 + 5 - 7*2"));

И вперед, развивайте идею. Управляющие конструкции языка JavaScript вам тоже доступны, так что не проблема сделать if.


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
gelo86
Дата 16.11.2010, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 388
Регистрация: 26.10.2007

Репутация: нет
Всего: нет



Но в ява скрипте нельзя использовать BigDecimal и т.д. Както надо заранее строить стринг с експрешеном. Может чтото полутше есть ?
PM MAIL   Вверх
jk1
Дата 16.11.2010, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 40
Всего: 75



Цитата

Но в ява скрипте нельзя использовать BigDecimal и т.д. Както надо заранее строить стринг с експрешеном. Может чтото полутше есть ? 


Вы же просили математику + управляющие констукции, а тут оказывается и длинная аифметика и исключения...

Можно сделать так. Вот этот проект позволяет использовать в качестве скриптового языка сам язык Java. Проще говоря, подключив его библиотеки Вы сможете получить уже Java-парсер методами, описанными выше. Надеюсь, возможностей языка Java Вам хватит  smile 


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0402 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.