Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- String input = "+1-2*3";
- # zersch mol da input splitten:
- # alle operatoren in a array
- String operatorArray[]; #länge isch input.length()/2 .. falls des a rolle spiel (gleichviel operatoren wie zahlen)
- # alle ints in a array
- Integer integerArray[];
- #arrays befüllencod - durch den input durchloopen
- # eine laufvariable, damit wir wissenwo in den arrays wir einfüllen müssen
- # da es genau gleichviele Integer wie Operatoren im ausdruck sind, reicht eine solche laufvariable howManyInts
- Integer howManyInts = -1; #wenn wir bei 0 anfangen, dann ist der erste int auf integerArray[1],
- # er soltle aber auf integerArray[0] sein^
- for (int x = 0; x < input.length(); x++) {
- # wenn die aktuelle position eine Zahl ist
- if (input[x].isInteger()) {
- integerArray[howmanyInts] = input[x];
- }
- # wenn aktuele position ein operator
- # ACHTUNG, erster operator kann vergessen werden!, bzw kann nur + oder - sein und wir gehen mal davon aus,
- # das + und - schon im Typen integer definiert sind
- # was auch der Realität entspricht: in java und c ist es legal sowas zu machen: Integer x = -20;
- # wir nehmen einfach vom fertigen OpArray den ersten wert weg und machen ein neues
- # - erscheint mir die billigste lösung ( nicht die beste.. )
- if (input[x].IsOperator()) {
- howManyInts++; # um 1 erhöhen, das geschieht hier, da der ausdruck immer mit einem operator anfängt
- operatorArray[howManyInts] = input[x];
- }
- }
- # erster wert vom operatorArray[] wegnehmen:
- operatorArray[0].remove(); #kA ob ihr das im pseudocode dürft^^ :)
- # jetzt gibts zwei arrays mit operatoren und mit zahlen
- # nun muss durch diese richtig durchiteriert werden - das ist etwas tricky...
- Integer Ergebnis = 0;
- for (x = 0; x < integerArray[].length(); x++) {
- for(i = 0; i <operatorArray[].length(); i++) {
- # je nachdem, was für ein operator
- String operator = operatorArray[i];
- switch (operator) {
- case '+':
- Ergebnis = Ergebnis + integerArray[x]+integerArray[x+1];
- case '-':
- Ergebnis = Ergebnis + integerArray[x]-integerArray[x+1];
- case '*':
- .........
- }
- }
- }
- return Ergebnis;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement