M
MarcoFH12
Gast
Hi Leute,
ich baue einen Parser für mathematische Strings. Ich möchte nach einem Check, ob die Eingaben valide sind, den String aufteilen. In einen Stack, der die Zahlen enthält, und einen zweiten, der die Operatoren enthält.
Hier ist ein Beispiel String:
Zurzeit Zeit zerteile ich den String, wie folgt:
Wenn ich mir nachher die Arrays ausgeben, ist der Array "numbers" korrekt. Das Array "commands" ist immer an der ersten Stelle commands[0] leer. Die Ausgabe sieht wie folgt aus:
Number-Array: [5.2, 2, 32, 4]
Command-Array: [, +, *, +]
Mein Ziel ist, dass das Command-Array lediglich die Operatoren enthält und nichts anderes. Was mache ich falsch?
Danke für eure Hilfe.
VG, Marco
ich baue einen Parser für mathematische Strings. Ich möchte nach einem Check, ob die Eingaben valide sind, den String aufteilen. In einen Stack, der die Zahlen enthält, und einen zweiten, der die Operatoren enthält.
Hier ist ein Beispiel String:
Code:
String s = "5.2+2*32+4";
Zurzeit Zeit zerteile ich den String, wie folgt:
Code:
static String NUMBER_PATTERN = "([\\d]*\\.?[\\d]+)";
static String COMMAND_PATTERN = "\\+|-|/|\\*";
(...)
String[] numbers = mathString.split(MathStringParser.COMMAND_PATTERN);
String[] commands = mathString.split(MathStringParser.NUMBER_PATTERN);
Wenn ich mir nachher die Arrays ausgeben, ist der Array "numbers" korrekt. Das Array "commands" ist immer an der ersten Stelle commands[0] leer. Die Ausgabe sieht wie folgt aus:
Number-Array: [5.2, 2, 32, 4]
Command-Array: [, +, *, +]
Mein Ziel ist, dass das Command-Array lediglich die Operatoren enthält und nichts anderes. Was mache ich falsch?
Danke für eure Hilfe.
VG, Marco