Hola, buenos días a todos. Antes de pasar a la pregunta, les agradecería si me dijeran si esta bien colocado este tema aquí y si hay algún tipo de problema con el formato o similares para poder corregirlo en caso de ser necesario. Gracias.
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 originalimport java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class calculadora
extends JFrame{
//Botones
//Etiquetas
//Area de Texto
public calculadora(){
super("Calculadora Java");
//Caracteristicas Ventana
setDefaultCloseOperation
(JFrame.
EXIT_ON_CLOSE); 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());
System.
out.
println("Array: " + a
); }
//Array para contener los simbolos
ArrayList<String> s = new ArrayList<String>();
//Tomo cada simbolo
while(simbol.hasMoreTokens()){
s.add(simbol.nextToken());
//Imprimo el ArrayList de los simbolos en la consola
System.
out.
println("Simbolos: " + s
);
}
//Variable para el indice en los Array
int index = 0, i;
//Variable para resultado
double res;
for(i = 0;i<=a.size();i++){
res
= Double.
parseDouble(a.
get(index
)) <--- Aqui la duda, como colocar el simbolo del
Array en forma de operador.
}
}
}
public ButtonListener bl = new ButtonListener();
public static calculadora x;
//Hebra Principal
public static void main
(String[] args
){ //Llamada a Metodo de Creacion de Ventana
public void run(){
x = new calculadora();
}
});
}
}