Recientemente comencé a practicar mi programación en Java y para ello decidí empezar programando una simple calculadora con una pequeña GUI. Las operaciones a realizar se escriben en un JTextField y después dando clic en un JButton se calculan todas las operaciones.
Para ello primero fragmente cada numero introducido guardándolo en un ArrayList, y después hice la misma operación para los símbolos matemáticos introducidos, para esto utilice StringTokenizer.
Entonces mi duda como lo dice en el titulo es ¿Se puede tomar uno de los símbolos matemáticos(+, -, *, /)en el segundo ArrayList y colocarlo después del primer numero (transformado a Double) para guardar el resultado de la operación en una variable?
Por ejemplo:
Si yo introduzco "1+2-3*4/1" en el JTextField. El ArrayList me queda así: [1, 2, 3, 4, 1]
Después el segundo ArrayList me quedaría así: [+, -, *, /]
Entonces el resultado lo guardo en una variable 'res' de tipo Double, pero aqui es donde no se que hacer
res = Double.parseDouble(a.get(0)) ??? <--- Aqui quiero colocar el primer simbolo del ArrayList pero en forma de operador, no de texto.
Si es de alguna importancia les dejo el codigo completo. Muchas Gracias de antemano.
Código Java:
Ver original
import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.util.ArrayList; import java.util.StringTokenizer; //Botones //Etiquetas //Area de Texto public calculadora(){ super("Calculadora Java"); //Caracteristicas Ventana setSize(400, 200); setVisible(true); //Caracteristicas Componentes //Agregar Componentes b1.addActionListener(bl); add(l1); add(t1); add(b1); add(l2); add(l3); } //Escucha de Eventos @Override // TODO Auto-generated method stub //Se crea array para contener las cifras ArrayList<String> a = new ArrayList<String>(); //Tomo cada uno de los numeros en el JTextField //Agrego los numeros al ArrayList while(token.hasMoreTokens()){ a.add(token.nextToken()); } //Array para contener los simbolos ArrayList<String> s = new ArrayList<String>(); //Tomo cada simbolo StringTokenizer simbol = while(simbol.hasMoreTokens()){ s.add(simbol.nextToken()); //Imprimo el ArrayList de los simbolos en la consola } //Variable para el indice en los Array int index = 0, i; //Variable para resultado double res; for(i = 0;i<=a.size();i++){ } } } public ButtonListener bl = new ButtonListener(); public static calculadora x; //Hebra Principal //Llamada a Metodo de Creacion de Ventana public void run(){ x = new calculadora(); } }); } }