S
Smeagollum
Gast
Komm einfach net weiter mit der Klammerrechnung, hab auch noch nix diesbezüglich in nem Forum gefunden, hoffe ihr könnt mir helfen!
Die "einfache" klammerrechung funktioniert hierbei auch schon... z.b. 5*(3+2)
das Problem ist nur, dass z.b. 5+(3+2*6)/2 nicht funktioneren, was könnte man da machen?
MFG
Code:
if(cmd.equals("="))
{
vector.insertElementAt("(",0);
vector.addElement(label.getText());
vector.addElement(")");
if(klammerncounter>0)
for (int i=0; i<klammerncounter;i++)
{
vector.addElement(")");
}
for (int j=0; j<=vector.size(); j++)
{
for (int i=vector.lastIndexOf("("); i<vector.indexOf(")"); i++)
{
if (vector.elementAt(i).equals("*"))
{
Double zw_erg = Double.parseDouble(vector.elementAt(i-1)+"")*Double.parseDouble(vector.elementAt(i+1)+"");
vector.removeElementAt(i);
vector.removeElementAt(i);
vector.set(i-1,zw_erg);
i=0;
}
if (vector.elementAt(i).equals("/"))
{
Double zw_erg = Double.parseDouble(vector.elementAt(i-1)+"")/Double.parseDouble(vector.elementAt(i+1)+"");
vector.removeElementAt(i);
vector.removeElementAt(i);
vector.set(i-1,zw_erg);
i=0;
}
}
for (int i=vector.lastIndexOf("("); i<vector.indexOf(")"); i++)
{
if (vector.elementAt(i).equals("+"))
{
Double zw_erg = Double.parseDouble(vector.elementAt(i-1)+"")+Double.parseDouble(vector.elementAt(i+1)+"");
vector.removeElementAt(i);
vector.removeElementAt(i);
vector.set(i-1,zw_erg);
i=0;
}
if (vector.elementAt(i).equals("-"))
{
Double zw_erg = Double.parseDouble(vector.elementAt(i-1)+"")-Double.parseDouble(vector.elementAt(i+1)+"");
vector.removeElementAt(i);
vector.removeElementAt(i);
vector.set(i-1,zw_erg);
i=0;
}
}
if((Double.parseDouble(vector.indexOf(")")+"")-(Double.parseDouble(vector.lastIndexOf("(")+"")))==2)
{
vector.removeElementAt(vector.indexOf(")"));
vector.removeElementAt(vector.lastIndexOf("("));
}
label.setText(vector.elementAt(0)+"");
vector.clear();
}
Die "einfache" klammerrechung funktioniert hierbei auch schon... z.b. 5*(3+2)
das Problem ist nur, dass z.b. 5+(3+2*6)/2 nicht funktioneren, was könnte man da machen?
MFG