PDA

Visualizza la versione completa : Problemi con Java


programmer95
22-12-2013, 18:58
Ciao a tutti,mi sto cimentando in un metodo che data un'espressione mi restituisce il risultato.
Perņ se io gli passo "(2*3)^2" funzione...mentre se gli passo"(2*(3*2))^2" mi da l'errore "java.lang.OutOfMemoryError: Java heap space".Ho provato a cambiare la memoria della JVM,ma niente da fare.Il codice,salvo errori che non ho trovato sembra apposto,quindi non so come andare avanti.
Sapete dirmi qualcosa?

Scara95
22-12-2013, 19:14
Posta il codice e fai spostare la discussione nel sottoforum dedicato a Java

programmer95
22-12-2013, 19:25
non č molto pulito comunque metto solo la parte dove mi da il problema

//Scorro l'espressione
for(int i=0;i<espressione.length();i++)
{

if(espressione.charAt(i)=='^')
{
pos=i;
if(contaApici==0){
contaApici++;

while(pos!=0)
{
pos--;
if(espressione.charAt(pos)=='(')
contaAperta++;
if(espressione.charAt(pos)==')')
contaChiusa++;
}
//se siamo dentro una parentesi
if(contaChiusa!=contaAperta)
{
contaApici=0;
contaAperta=-1;
contaChiusa=-1;
potenza--;
//non lo siamo
}else
{
contaAperta=1;
contaChiusa=1;
}
pos=i;
if(contaChiusa==contaAperta && contaAperta!=-1){
contaAperta=0;
contaChiusa=0;
//se il 1° operando č fra parentesi applico la ricorsione
if(espressione.charAt(i-1)==')')
{
pos--;
//while(espressione.charAt(pos)!='(')
while(contaAperta!=1)
{
pos--;
if(espressione.charAt(pos)=='(')
contaAperta++;
if(espressione.charAt(pos)==')')
contaAperta--;

}


contaChiusa=0;
contaAperta=0;
for(int j=pos+1;j<i-1;j++)
{
app+=espressione.charAt(j);
}
System.out.println(app);
eliminata+="("+app+")^";
n1=valuta(app);
app="";
pos=i;

}

MItaly
22-12-2013, 23:32
Doppio :fagiano:
http://forum.html.it/forum/showthread.php?threadid=2901410

Loading