Aquí, discutiremos la expresión aritmética que tiene operadores como la suma y la multiplicación y verá cómo puede tomar una expresión y calcular el valor con la ayuda del programa.
Dada una expresión que solo tiene operadores + y *, la tarea es evaluar la expresión de string y encontrar su salida. En esto, es un programa Java simple para implementar en cuya expresión contiene solo operadores de suma (+) y multiplicación (*).
Ejemplo 1:
Input: 1+2*3+4*5*6 Output: 127 Explanation: According to BODMAS, multiplication is evaluated first giving an expression as: 1+6+120. Finally the sum is 127.
Ejemplo 2:
Input: 2*3*4 Output: 24
Ejemplo 3:
Así es como el programa Java dado a continuación tomará la string como entrada y la dividirá en función de operadores como la suma (+) y la multiplicación (*).
1+2*3+4*5*6 |1|+|2*3|+|4*5|*6| |1|+|6|+|20|*6 |1|+|6|+|120| = 127
Acercarse :
- Divida la string con la coincidencia de expresiones regulares + signo
- Por lo tanto, cada elemento en la array de strings resultante tiene un solo número o una expresión de productos.
- Ahora recorra la array para encontrar índices que tengan productos.
- Dividir la expresión del producto con la coincidencia de expresiones regulares * signo
- Ahora multiplique cada número que se dividió usando el signo * en el Paso 4.
- Finalmente, cada índice tiene solo números que deben agregarse para la evaluación final de una expresión.
- Sume enteros en todos los índices de la array recibida después del Paso 1.
- La suma da el resultado final de la string de expresión.
A continuación se muestra la implementación del enfoque anterior:
Java
import java.io.*; class GFG { static int calculator(String str) { // Split expression string using + operator. // Now every index will have either an integer or an // expression of only products. String[] arr = str.split("\\+"); for (int i = 0; i < arr.length; i++) { int result = 1; // If index contains * sign, // split expression using * if (arr[i].contains("*")) { String[] num = arr[i].split("\\*"); // Multiply each number separated by * and // store final product in 'result' variable for (int j = 0; j < num.length; j++) { result *= Integer.parseInt(num[j]); } // Store resultant product value in the // array index. For ex: index having 2*3 is // replaced by 6 and index having 4*5*6 is // replaced by 120. arr[i] = String.valueOf(result); } } // Now every array index has a // single integer as element. int len = arr.length; int sum = 0; // Calculate the sum of all elements // of array to get final result. for (int i = 0; i < len; i++) { sum += Integer.parseInt(arr[i]); } // Return the final result return sum; } public static void main(String[] args) { // Expression string is: 1+2*3+4*5*6 System.out.println(calculator("1+2*3+4*5*6")); } }
Producción :
127
Publicación traducida automáticamente
Artículo escrito por SAKSHIKULSHRESHTHA y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA