Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Вычислить значение из строки  (Прочитано 12832 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Asafj
Интересующийся

ru
Offline Offline

« : 17-12-2010 15:31 » 

Я получаю строку например String a = "10+10"
Как получить int - е значение?
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 17-12-2010 15:51 » 

Разбирать формулу вручную. Например. Алгоритм Дейкстры. Он позволяет из инфиксной нотации переводить в обратную польскую нотацию. А затем уже можно вычислять. Вот описание всего этого в википедии
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Asafj
Интересующийся

ru
Offline Offline

« Ответ #2 : 17-12-2010 17:29 » 

Что то как-то все сложно
А для java нет готового решения?
Записан
Serg79
Модератор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 17-12-2010 18:32 » new

Для C/C++ есть Bison (YACC), создает синтаксический анализатор по описанной грамматике. Видал реализации, которые генерят класс парсера и для java. Вот кстати: http://www.gnu.org/software/bison/manual/html_node/Java-Parsers.html#Java-Parsers

Одним словом с наскока не разберешься, но потратив время на его изучение, почувствуешь всю его мощь. А грамматика описывающая вычисления простых арифметических выражений, задается 5 - 8 строчками.
Записан
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 17-12-2010 19:49 » 

Asafj, все зависит от сложности выражения. Если это число+число или число-число, то разбор можно элементарно сделать регулярными выражениями.

Если там полноценная арифметика, то можно написать грамматику самостоятельно или спросить гугл
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
asdas
Интересующийся

ru
Offline Offline

« Ответ #5 : 18-12-2010 12:38 » 

Понятно
спасибо
Видимо, на варианте с регуляр. выражениями остановлюсь.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines