magic_halli
Erfahrenes Mitglied
So, ich habe jetzt den javascript-Code für mein Java analog angepaßt. Allerdings wird bei mir gar nichts zurückgeschrieben!
Annahme meinerseits war nun, dass 'stack.top()' analog 'stack.peek()' ist. Außerdem kommt bei mir kein ELSEIF vor, sondern wenn, nur ELSE. Das Textfile ist auch das gleiche geblieben (analog @deepthroat) --> Ausgabe sollte also auch analog @deepthroat sein!
Ich denke, dass ich in meinem Code bestimmt etwas falsch geschrieben bzw. übersehen habe?!
Hier meine jetzige Fassung analog zum Vorschlag @deepthroat:
Was habe ich hier falsch gemacht bzw. übersehen?
Gruß.
Annahme meinerseits war nun, dass 'stack.top()' analog 'stack.peek()' ist. Außerdem kommt bei mir kein ELSEIF vor, sondern wenn, nur ELSE. Das Textfile ist auch das gleiche geblieben (analog @deepthroat) --> Ausgabe sollte also auch analog @deepthroat sein!
Ich denke, dass ich in meinem Code bestimmt etwas falsch geschrieben bzw. übersehen habe?!
Hier meine jetzige Fassung analog zum Vorschlag @deepthroat:
Java:
Stack stack = new Stack();
stack.push("true");
//ab hier jede Zeile vom Textfile durchgehen
...
if( line.startsWith("IF") || line.startsWith("if") ){
//wenn IF-Bedingung true zurückliefert, dann...
if( ifcheck == true ){
stack.push( stack.peek() + "true" );
} else{
stack.push( stack.peek() + "false" );
}
}else if( line.startsWith("ELSE") || line.startsWith("else") ){
//bei ELSE Stack negieren
if( stack.peek().equals("true") ){
//Element löschen und (neues)negiertes Element hinzufügen
stack.pop();
stack.push( stack.peek() + "false" );
} else{
stack.pop();
stack.push( stack.peek() + "true" );
}
} else if( line.startsWith("ENDIF") || line.startsWith("endif") ){
//Wert vom Stack löschen
stack.pop();
}
//nur relevante Zeilen speichern
else if( stack.peek().equals("true") ){
strBuffer.append(line + "\n");
}
Gruß.