powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Расчет по пользовательским формулам
9 сообщений из 9, страница 1 из 1
Расчет по пользовательским формулам
    #38072283
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что есть в Java для сабжа? Пользователь вводит свою расчетную формулу (оформленную специальным образом), указав переменные и получает результат, либо сообщение об ошибке.
...
Рейтинг: 0 / 0
Расчет по пользовательским формулам
    #38072294
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JavaCC, возможно.
http://javacc.java.net/
...
Рейтинг: 0 / 0
Расчет по пользовательским формулам
    #38072410
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Н,

Если задача не учебная, можно попробовать взять какую-нибудь реализацию JSR-223 (Например, beanshell или groovy, в JDK встроена поддержка JavaScript) и использовать его.

Такой метод не сработает, если язык четко ограничен и это будет проверятся.
...
Рейтинг: 0 / 0
Расчет по пользовательским формулам
    #38072429
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут есть пример со Скрипт-Енджайн. Может подойдет.

Код: java
1.
2.
3.
ScriptEngineManager manager = new ScriptEngineManager();
    ScriptEngine engine = manager.getEngineByName("js");        
    Object result = engine.eval("3+4");
...
Рейтинг: 0 / 0
Расчет по пользовательским формулам
    #38072431
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
String text = "var result=1+2;";
engine.eval(text);
System.out.println(engine.get("result"));
...
Рейтинг: 0 / 0
Расчет по пользовательским формулам
    #38072440
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столкнулись в дверях.
...
Рейтинг: 0 / 0
Расчет по пользовательским формулам
    #38073255
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
All,
Спасибо, более менее понятно.
Ачто если мне нужно в формуле использовать не стандартные арифметические операции и операнды-константы, а java-методы и переменные из java-пргограммы?

Например:

5+testclass.dispersion('CollectionName')*10

Т.е. есть мой собственный статический метод расчета дисперсии (это например, по факту чего угодно) на вход я передаю ему имя коллекции (из NOSQL базы), или имя таблицы из реляционки или имя массива, что угодно.

Т.е. что то наподобие eval'а.


ПС извиняюсь за сумбур, просто сам еще не могу понять, что мне надо ...
...
Рейтинг: 0 / 0
Расчет по пользовательским формулам
    #38073297
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Н,

Ну мы юзаем beanshell, но когда мы начинали писать - то о груви не слышали еще, о ScriptEngine тем более - вроде говорят что последние быстрее. но у нас полет нормальный
...
Рейтинг: 0 / 0
Расчет по пользовательским формулам
    #38073952
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
All,

Еще раз всем спасибо, ScriptEngine (пока) то что нужно.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Расчет по пользовательским формулам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]