Вычисление большого смешанного уравнения в Java

Скажем, мне дали такое выражение, как

(1/2) + (3/4) + (5/8) + (2/10) + (3/2) + (10/1)

Как я могу вычислить это выражение как значение с плавающей запятой таким образом, чтобы, если выражение изменить, я все еще мог его вычислить?

Сначала я думал, что смогу разобрать его из строки, но столкнулся с большими проблемами. Затем я переключился на ручное разделение значений на два массива — знаменатели и числители, но я чувствовал, что это немного обманывает дух упражнения. Это также не позволило бы гибкости с точки зрения представленных значений.

Можно ли это сделать без сторонних библиотек и тому подобного?


person user2522420    schedule 26.06.2013    source источник
comment
что, если выражение, где изменить, я все еще мог бы его вычислить?... не могли бы вы объяснить это более четко   -  person stinepike    schedule 26.06.2013
comment
Я имею в виду: если бы я передал аналогичное выражение для вычисления, смог бы я использовать тот же метод или класс для его вычисления.   -  person user2522420    schedule 26.06.2013
comment
Можно ли это сделать без сторонних библиотек и тому подобного? - Простой ответ. да. Прочитайте связанные вопросы. (Оценить проанализированное дерево выражений легко...)   -  person Stephen C    schedule 26.06.2013
comment
Re: Сначала я думал, что смогу разобрать его из строки, но столкнулся с большими проблемами: вам следует удалить этот вопрос и вместо этого задавать вопросы об этих проблемах. Потому что да, вы должны иметь возможность разобрать его из строки.   -  person ruakh    schedule 26.06.2013