Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / 2+2*2 =? / 17 сообщений из 17, страница 1 из 1
04.11.2008, 11:14
    #35633153
KaTaJIu3aToP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2+2*2 =?
Здравствуйте!

Есть String "2+2*2". Как вычислить её значение?

Спасибо за внимание.
...
Рейтинг: 0 / 0
04.11.2008, 11:24
    #35633161
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2+2*2 =?
самое простое - скриптовать
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
04.11.2008, 11:57
    #35633192
_mashuta_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2+2*2 =?
В M$ Calculator посчитайте. Сначала в простом, потом в "научном" ;-)
...
Рейтинг: 0 / 0
04.11.2008, 12:40
    #35633252
KaTaJIu3aToP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2+2*2 =?
Неправильно расссказал о задаче.

На вход будут подаваться стринговые значения аля вышеописанное. Чем можно парсить эти значения для вычисления результата.
Пример.
На входе: 2+2*2
На выходе: 6

На входе: 2*2*3+1
На выходе: 13
...
Рейтинг: 0 / 0
04.11.2008, 13:18
    #35633305
risk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2+2*2 =?
KaTaJIu3aToPНеправильно расссказал о задаче.

На вход будут подаваться стринговые значения аля вышеописанное. Чем можно парсить эти значения для вычисления результата.
Пример.
На входе: 2+2*2
На выходе: 6

На входе: 2*2*3+1
На выходе: 13

А вы поставьте Оракл и делайте запрос в базу что то типа select 2+2*3 from dual ))))))))))
...
Рейтинг: 0 / 0
04.11.2008, 13:27
    #35633313
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2+2*2 =?
если жава шестая, то javax.script

если ранняя, то либо рино прикручивать, либо изучать алгоритмы и делать самому :))

Код: plaintext
Meo voto
...
Рейтинг: 0 / 0
04.11.2008, 13:40
    #35633327
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2+2*2 =?
как вариант
javacc
...
Рейтинг: 0 / 0
04.11.2008, 14:26
    #35633386
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2+2*2 =?
_mashuta_В M$ Calculator посчитайте. Сначала в простом, потом в "научном" ;-)
+1. Известная фишка!
...
Рейтинг: 0 / 0
04.11.2008, 14:32
    #35633393
Глас народа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2+2*2 =?
KaTaJIu3aToPНеправильно расссказал о задаче.

На вход будут подаваться стринговые значения аля вышеописанное. Чем можно парсить эти значения для вычисления результата.
Пример.
На входе: 2+2*2
На выходе: 6

На входе: 2*2*3+1
На выходе: 13

Apache Jexl
...
Рейтинг: 0 / 0
04.11.2008, 19:14
    #35633746
lamox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2+2*2 =?
Я бы посоветовал MVEL
...
Рейтинг: 0 / 0
04.11.2008, 22:33
    #35633886
Гата Селов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2+2*2 =?
KaTaJIu3aToP,
смотри в гугле "Синтаксический анализ методом рекурсивного спуска". На решение твоей проблемы часа времени хватит
...
Рейтинг: 0 / 0
05.11.2008, 00:16
    #35633944
untitled
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2+2*2 =?
я делал как то через little language pattern и StringTokenizer
стандартный подход граф сварганить и просчитать его, тогда, в случае чего, и преобразовать можно будет формулу достаточно просто, сократить, оптимизировать или еще что-нибудь с ней сделать..
но блаблабла фром дуал, это, конечно, наш выбор ))
...
Рейтинг: 0 / 0
05.11.2008, 10:30
    #35634333
VoDA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2+2*2 =?
KaTaJIu3aToPНеправильно расссказал о задаче.

На вход будут подаваться стринговые значения аля вышеописанное. Чем можно парсить эти значения для вычисления результата.
Пример.
На входе: 2+2*2
На выходе: 6

На входе: 2*2*3+1
На выходе: 13Можно по жести извратиться и скомпилировать на ходу в класс вида:
class MyClass$1234 {
public int calc() {
return 2+2*2;
}
}
Затем в коде инстанцировать этот класс и вызвать метод. Я делал для тестов через javassist.
...
Рейтинг: 0 / 0
09.11.2008, 15:36
    #35642399
skelet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2+2*2 =?
а напрямую к компилятору разве не реально подцепиться и попросить его посчитать?
...
Рейтинг: 0 / 0
10.11.2008, 08:37
    #35643010
Super Puper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2+2*2 =?
Самый грамотный вариант - использовать Regular expressions.

Хотя передавать строку в запросе к dual - тоже шедевр )))
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
30.06.2014, 11:03
    #38683457
DimOn19**
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2+2*2 =?
работал с mvel, неплохая штука для таких вещей. поосоветовал бы посмотреть в его направлении. не бойтесь если доки не совсем свежие - в доках сам язык описан верно.

и ещё, можно пробовать ваши выражения на разных версиях - у меня у самого почему-то версия 2.1.9 работала быстрее чем 2.2.0.
ещё, иногда возникает ошибка illegal acces error. и без влияния на скорость - отключением jit-оптимизатора.

В общем, в остальном - пуляешь строку - получаешь ответ.
...
Рейтинг: 0 / 0
30.06.2014, 11:15
    #38683480
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2+2*2 =?
Гата СеловKaTaJIu3aToP,
смотри в гугле "Синтаксический анализ методом рекурсивного спуска". На решение твоей проблемы часа времени хватит )))))))
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / 2+2*2 =? / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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