0

estoy realizando un programa el cual tiene que recibir varias operaciones entre números en una misma cadena. Por ejemplo:

input [2 + 3 * 2 - 4 / 2]

output (operación por dentro: 2+3=5. 5*2=10. 10-4=6. 6/2=3.) total=3

La cadena debe utilizar split para partir los caracteres y así detectar que símbolo se está utilizando.

Lo que llevo de codigo:

public class UsingSplit {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner entrada = new Scanner (System.in);

    String cadena = entrada.nextLine();
    String cadenaSeparada [] = cadena.split("\\+");
    int suma=Integer.parseInt(cadenaSeparada[0])+Integer.parseInt(cadenaSeparada[1])+Integer.parseInt(cadenaSeparada[2])+Integer.parseInt(cadenaSeparada[3]);
    cadenaSeparada = cadena.split("-");
    int resta=Integer.parseInt(cadenaSeparada[0])-Integer.parseInt(cadenaSeparada[1])-Integer.parseInt(cadenaSeparada[2])-Integer.parseInt(cadenaSeparada[3]);
    System.out.println(Arrays.toString(cadenaSeparada));
    cadenaSeparada = cadena.split("\\*");
    int multi=Integer.parseInt(cadenaSeparada[0])*Integer.parseInt(cadenaSeparada[1])*Integer.parseInt(cadenaSeparada[2])*Integer.parseInt(cadenaSeparada[3]);
    cadenaSeparada = cadena.split("\\/");
    int div=Integer.parseInt(cadenaSeparada[0])*Integer.parseInt(cadenaSeparada[1])*Integer.parseInt(cadenaSeparada[2])*Integer.parseInt(cadenaSeparada[3]);
    
    System.out.println(suma);
    System.out.println(resta);
    System.out.println(multi);
    System.out.println(div);`

No encuentro la manera de cómo combinar las operaciones en una sola cadena. Y además quisiera saber si existe alguna forma de no colocar la operación de todas las posiciones del arreglo, puesto que si aparecen 5 números en un arreglo, sólo hará la operación entre los primeros 4.

Agradezco de antemano.

Japv
  • 9,317
  • 8
  • 11
  • 29
  • te recomiendo revisar la [Referencia de expresiones regulares](https://es.stackoverflow.com/questions/223553/qu%c3%a9-significa-esta-expresi%c3%b3n-regular-referencia-de-expresiones-regulares) – Ruslan López Oct 11 '21 at 22:37
  • Es que el orden de tus operaciones esta mal, pq primero se hace la multiplicacion o division en orden que aparezcan y despues la suma y la resta en el orden que aparezcan, y eso lo estas haciendo mal en el ejemplo que pones – Japv Oct 12 '21 at 02:06

0 Answers0