Всем привет,ранее,я писал калькулятор OOP,поступило задание переделать программу по 10 пунктам. 2 из них-это хранить введенные выражения в string массиве,используя метод split,для разделения. И пребразовываеть в int введенные значения.
Я попытался,еще довольно неоформленно,и сыровато. Но уже выходит ошибка,связанная с размером массива.Не подскажете,что не так?
Часть кода..
BEFORE.
public class CalculatorTest {
public static void main(String[] args) {
Calculator calculator = new Calculator();
Scanner scanner = new Scanner(System.in);
String yesNo = "да";
while (yesNo.equals("да")) {
System.out.println("Введите первое число: ");
int inputArg1 = scanner.nextInt();
calculator.setInputArg1(inputArg1);
System.out.println("Введите второе число: ");
int inputArg2 = scanner.nextInt();
calculator.setInputArg2(inputArg2);
System.out.println("Выберите мат.выражение (+, -, *, /, %, ^ ): ");
char operation = scanner.next().charAt(0);
calculator.setOperation(operation);
calculator.calculate();
do {
System.out.println("Желаете продолжить вычисления? Введите да/нет");
yesNo = scanner.next();
} while (!yesNo.equals("да") && !yesNo.equals("нет"));
}
}
}
Как я пытаюсь переделать.
class CalculatorTest {
public static void main(String[] args) {
Calculator calculator = new Calculator();
Scanner scanner = new Scanner(System.in);
System.out.println("Введите 2 числа, для операции: ");
String calculations = scanner.nextLine();
String[] parts = calculations.split(" ");
String yesNo = "да";
while (yesNo.equals("да")) {
int inputArg1 = Integer.parseInt(parts[0]);
calculator.setInputArg1(inputArg1);
int inputArg2 = Integer.parseInt(parts[1]);
calculator.setInputArg2(inputArg2);
System.out.println("Выберите мат.выражение (+, -, *, /, %, ^ ): ");
char operation = scanner.next().charAt(0);
calculator.setOperation(operation);
calculator.calculate();
do {
System.out.println("Желаете продолжить вычисления? Введите да/нет");
yesNo = scanner.next();
} while (!yesNo.equals("да") && !yesNo.equals("нет"));
}
}}