Función para Realizar Operaciones Básicas por Prioridad en Java [SOLUCIONADO]

Entender cómo Java maneja las operaciones básicas con prioridad puede ser un hito importante en la carrera de cualquier programador. No sólo nos ayuda a desarrollar algoritmos complejos, sino que también puede aumentar la velocidad y optimizar los recursos de nuestro código. Hoy vamos a entender cómo podemos implementar una función que gestione estas operaciones con prioridad de Java en nuestras aplicaciones.

La prioridad de las operaciones, también conocida como precedencia de operadores, es un conjunto de reglas que define el orden en el que se realizan las operaciones cuando una misma expresión contiene diferentes tipos de ellos. Por ejemplo, en la operación 7 + 3 * 2, el resultado sería 13 y no 20, porque el operador de multiplicación (*) tiene mayor prioridad que el de suma (+).

public class OperacionesPrioritarias {

    public static int operacionPrioridad(String operacion) {
        int resultado = 0;

        if (operacion.contains("+") && operacion.contains("*")) {
            String[] operando = operacion.split("\+");
            for (String op : operando) {
                if (op.contains("*")) {
                    String[] multiplicacion = op.split("\*");
                    int producto = 1;
                    for (String num : multiplicacion) {
                        producto *= Integer.parseInt(num);
                    }
                    resultado += producto;
                } else {
                    resultado += Integer.parseInt(op);
                }
            }
        } else if (operacion.contains("+")) {
            String[] suma = operacion.split("\+");
            for (String num : suma) {
                resultado += Integer.parseInt(num);
            }
        } else if (operacion.contains("*")) {
            String[] producto = operacion.split("\*");
            resultado = 1;
            for (String num : producto) {
                resultado *= Integer.parseInt(num);
            }
        } else {
            resultado = Integer.parseInt(operacion);
        }

        return resultado;
    }

    public static void main(String[] args) {
        System.out.println(operacionPrioridad("7+3*2"));
    }
}

Nuestro método de operaciones primero comprueba si la operación contiene los operadores de suma y multiplicación. Si es así, divide la cadena en diferentes operaciones de suma y realiza las operaciones de multiplicación en primer lugar debido a su mayor prioridad. Si la cadena solo contiene sumas o multiplicaciones, el método las realiza de manera secuencial. Nuestra función retorna al final el resultado obtenido.

Tómate el tiempo para entender bien el código, pruébalo e insértalo en tu programa Java. Incluso variando la forma en que lo implementamos, siempre debemos mantener en mente la precedencia de operadores para evitar errores difíciles de encontrar más adelante.

El método que hemos diseñado es solo una de las muchas formas posibles de implementar la precedencia de operadores en Java. En función de nuestras necesidades, podría ser necesario ajustar algunos aspectos del código, pero la idea subyacente será la misma.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad