Создайте консольное приложение "Строковый калькулятор". Приложение должно читать из консоли введенные пользователем строки, числа, арифметические операции проводимые между ними и выводить в консоль результат их выполнения.
- Калькулятор умеет выполнять операции сложения строк, вычитания строки из строки, умножения строки на число и деления строки на число: "a" + "b", "a" - "b", "a" * b, "a" / b. Данные передаются в одну строку(смотрите пример)! Решения, в которых каждая строка, число и арифмитеческая операция передаются с новой строки считаются неверными.
- Значения строк передаваемых в выражении выделяются двойными кавычками.
- Результатом сложения двух строк, является строка состоящая из переданных.
- Результатом деления строки на число n, является строка в n раз короче исходной (смотрите пример).
- Результатом умножения строки на число n, является строка, в которой переданная строка повторяется ровно n раз.
- Результатом вычитания строки из строки, является строка, в которой удалена переданная подстрока или сама исходная строка, если в нее нет вхождения вычитаемой строки (смотрите пример).
- Калькулятор должен принимать на вход числа от 1 до 10 включительно, не более. И строки длинной не более 10 символов. Если строка, полученная в результате работы приложения длинее 40 симовлов, то в выводе после 40 символа должны стоять три точки (...)
- Калькулятор умеет работать только с целыми числами.
- Первым аргументом выражения, подаваемого на вход, должна быть строка, при вводе пользователем выражения вроде 3 + "hello", калькулятор должен выбросить исключение и прекратить свою работу.
- При вводе пользователем неподходящих чисел, строк или неподдерживаемых операций (например, деление строки на строку) приложение выбрасывает исключение и завершает свою работу.
- При вводе пользователем выражения, не соответствующего одной из вышеописанных арифметических операций, приложение выбрасывает исключение и завершает свою работу.
"100" + "500"
"100500"
"Hi World!" - "World!"
"Hi "
"Bye-bye!" - "World!"
"Bye-bye!"
"Java" * 5
"JavaJavaJavaJavaJava"
"Example!!!" / 3
"Exa"
Обратите внимание на принципы ООП, постарайтесь разбить программу на логические классы. Решения, в которых весь код программы находится в одном классе будут низко оценены. Продемонстрируйте своё умение в работе с разными синтаксическими конструкциями, не забудьте про исключительные ситуации, при которых выполнение программы невозможно из-за некорректных входных данных.
- Если вы не знакомы с git и Github вам нужно ознакомиться с этой статьей, в ней описаны основы работы с git.
- Если вы уже ознакомились с основами работы с git или были знакомы ранее - вам нужно создать собственный репозиторий и добавить туда проект с решением.
- Ссылку на репозиторий отправьте нам на почту [email protected] с темой Тестовое задание калькулятор Java.