El uso de cuerdas para hacer matemáticas

votos
-1

Estoy tratando de hacer una calculadora que permite múltiples operaciones (por ejemplo, 4 + 3-2 + 5). Mi idea básica de cómo hacer esto es mediante el uso de este bucle:

for (int i = 0; i < nums.length; i++) {
                switch (nums[i]) {
                case add:
                    while (func.size() < i) {
                        func.add(0);
                    }
                    func.add(i, 1);
                    type = +;
                    break;
                 //More cases for other operations

notas de los pares: referencias nums.length una matriz que contiene la entrada de la ecuación de división como este: nums = equation.split((?<=[-+*/%])|(?=[-+*/%]))

Lo ideal sería que, una vez que tenga el valor 'tipo', me gustaría ser capaz de hacer mi programa de calcular la ecuación al hacer esto:

for(int i = 1; i < nums.length; i++) {      
    ans = eq.get(0) type eq.get(func.indexOf(1)+i);
        }

Otra pequeña nota: eqes un ArrayList con todos los valores de nums.

Más o menos lo que quiero hacer es tener typeconvertido en operaciones matemáticas como +, -, etc. Sé que este código es terriblemente roto en el camino que he mostrado aquí, pero es sólo algo que escribí rápidamente para proporcionar un ejemplo de lo que quiere lograr. He mirado en otras preguntas similares a este en que la solución era utilizar las Mathfunciones de la clase y de llamadas de eso, pero no funciona en mi programa. Alguien tiene ideas sobre la manera de lograr esto? ¡Gracias!

Publicado el 19/03/2020 a las 22:03
fuente por usuario
En otros idiomas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more