Калькулятор на 3 числа Java

Как сюда добавить 3 число?

public static void main(String[] args) throws IOException {
    System.out.print("Введите пример: ");
    char x = (char) System.in.read();
    char ope = (char) System.in.read();
    char y = (char) System.in.read();
    int xVal = x - 48;
    int yVal = y - 48;
    System.out.print("= ");
    System.out.print(xVal + yVal);

// сейчас выводится пример 5+5=10 // нужно чтобы считывался 2ой оператор и число и выводил результат. Пример 10-2*2=16

Вот что получилось

public static void main(String[] args) throws IOException {
    System.out.print("Введите пример: ");
    char x = (char) System.in.read();
    char ope = (char) System.in.read();
    char y = (char) System.in.read();
    char ope1 = (char) System.in.read();
    char z = (char) System.in.read();
    int xVal = x - 48;
    int yVal = y - 48;
    int zVal = z - 48;
    System.out.print("= ");

Я понимаю что тут все злые и проще нагрубить или отправить дальше самой с этим разбираться. Не тратьте ваше время тогда если вы не знаете или не хотите помочь, я потому и задала тут вопрос потому что спросить мне больше не у кого и не знаю как это продолжить. Про поиск в интернете не надо мне говорить, я не на столько ленивая чтобы им в первую очередь не пользоваться.


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

Автор решения: Дмитрий Алексеенко

Вам нужно преобразовать пришедшую строку из консоли в число. Пример :

Integer.parsInt("4");

Или

Integer.valueOf("4");
→ Ссылка
Автор решения: Igor

Этот код считает примеры с операциями + и -. Например 132-45+12-23. Если хотите можете расширить его на */, но стоит учесть то уже не будет работать, так как нужен будет приоритет операций, но думаю у вас всё получится, если немножко посидеть и подумать! :)

public class Calc {

    public static void main(String[] args) throws IOException {
        {
            Scanner in = new Scanner(System.in);
            System.out.print("Введите пример: ");
            String example = in.nextLine();
            System.out.print(calculate(example));
        }
    }

    public static Integer calculate(String example){
        example = example.replace(" ", "");

        if(!example.matches("^(\\d{1,}[-+]){1,}\\d{1,}$")){
            throw new RuntimeException("НЕДОПУСТИМЫЙ ФОРМАТ");
        }

        Integer[] ints = Arrays.stream(example.split("[-+]")).map(Integer::parseInt).toArray(Integer[]::new);

        int result = ints[0];
        int counter = 1;
        for (char ch : example.replaceAll("[0-9]","").toCharArray()) {
            if (ch == '-') result -= ints[counter];
            if (ch == '+') result += ints[counter];
            counter++;
        }

        return result;
    }
}
→ Ссылка