Не работает метод, производящий операцию над двумя числами

Цель - написать однострочный калькулятор, который умеет работать только с числами от 1 до 10 на входе. В первом методе делаю проверку первого числа, во втором - второго, если все подходит под условие, вызываю метод 'get.Operation()', чтобы произвести операцию над числами, но он почему-то выводит 0.

public class ArabicNumbers {
    public static Scanner scanner = new Scanner(System.in);
    public static String lineOfCalculation = scanner.nextLine();
    public static int firstArabicNumber = 0;
    public static int secondArabicNumber = 0;

    public void firstArabicNumberToInt() {
        String firstNumberToInt = lineOfCalculation.substring(0, 1);
        int firstArabicNumber = Integer.parseInt(firstNumberToInt);
        if (firstArabicNumber <= 10 && firstArabicNumber > 0) {
            System.out.println("Ваше первое число '" + firstArabicNumber
                    + "' входит в пределы допустимых значений!");
            secondArabicNumberToInt();
        } else {
        }
    }

    public static void secondArabicNumberToInt() {
        String secondNumberToInt = lineOfCalculation.substring(4, 5);
        int secondArabicNumber = Integer.parseInt(secondNumberToInt);
        if (secondArabicNumber <= 10 && secondArabicNumber > 0) {
            System.out.println("Ваше второе число '" + secondArabicNumber
                    + "' входит в пределы допустимых значений!");
            getOperation();
        } else {
        }
    }

    public static void getOperation() {
        char operation = lineOfCalculation.charAt(2);
        switch (operation) {
            case '+':
                System.out.println((firstArabicNumber + secondArabicNumber));
                break;
            case '-':
                System.out.println((firstArabicNumber - secondArabicNumber));
                break;
            case '*':
                System.out.println((firstArabicNumber * secondArabicNumber));
                break;
            case '/':
                System.out.println((firstArabicNumber / secondArabicNumber));
                break;
        }
    }
}

Ответы (1 шт):

Автор решения: Sergey Zh.

Во-первых, если написать вот так:

public static int firstArabicNumber = 0;
... 
public void firstArabicNumberToInt() {
            String firstNumberToInt = lineOfCalculation.substring(0, 1);
            int firstArabicNumber = Integer.parseInt(firstNumberToInt);

То это будут два разных firstArabicNumber - одна глобальная, другая локальная в методе. Поэтому нужно убрать int перед локальной в методе. То же самое и для secondArabicNumber.

А во-вторых, вот эта строчка говорит о том, что арифметический знак во входной строке должен быть на 3 месте (счёт от нуля - 0,1,2), так что проверьте входные данные

char operation = lineOfCalculation.charAt(2);
→ Ссылка