Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Java помогите с задачей

Алексей Пахомов Ученик (131), на голосовании 9 месяцев назад
Есть 4 задачи:
1. Пользователь вводит одну строку, в которой должно быть записано простое арифметическое выражение вида "a <операция> b", где a и b - какие-то действительные числа, а операция - один из символов "+", "-", "*", "/". Ваша задача - выполнить вычисление, если это возможно. Гарантируется, что в введённой строке ровно 2 пробела (значение пробел значение пробел значение) В результате работы могут произойти различные ошибки. Их нужно обработать следующим образом:

Если одно из чисел не является числом, то вывести на экран "Error! Not number"
Если вместо знака операции было введено любое другое значение, то выведите "Operation Error!"
Если произошла попытка деления на ноль, то выведите на экран "Error! Division by zero"
Обрабатывать исключения необходимо в указанном выше порядке.

2. Продолжите работу над проектом. Добавьте возможность считывания одной строчки из файла input.txt.

3. Продолжите работу над проектом. Теперь, помимо считывания строки из файла, добавьте возможность записи ответа в файл output.txt.

4. Продолжите работу над проектом. Теперь в файле input.txt лежит не одна, а неизвестное количество строк (пример строки описан в задаче Простой калькулятор). Ваша задача - сформировать файл output.txt, в котором для каждой строчки будет лежать ответ вида: "<исходная строка> = <ответ к этой строке>".
Проблема возникла на 4 задаче. Предыдущие задачи я решил так: https://github.com/NoName-ctr/fewfwfwefwewefewf.git
Не могу понять как лучше переделать код, что бы выполнить 4 задачу. Буду очень благодарен за помощь
Голосование за лучший ответ
Зеленая бяка Просветленный (41307) 10 месяцев назад
В
 public static String fileInput() 
считываем все строки и добавляем в лист, метод будет возвращать List<String> вот так:
 public static List fileInput() 
Метод
 public static String inputSelection() 
нужно тоже переделать, чтобы возвращать лист.

В метод main получаем лист строк, заводим новый лист строк для результата и начинаем по ним итерироваться, на строке 84 убираем outputSelection и записываем результат calculate(a, operator, b) в отдельную переменную. В новый лист для результатов записываем строку, которую мы в данный момент обрабатываем и результат калькуляции. После окончания цикла полученный список с результатами передаем в метод outputSelection (нужно изменить сигнатуру, чтобы принимал List<String>. Ну и с записью в консоль/файл списка строк думаю справитесь.
Похожие вопросы