Du benötigst einen
Parser bzw. zunächst einen Tokenizer.
Der baut dir dann aus deinem String einen Baum auf, den du dann ausrechnen kannst
Evtl. kannst du auch auf den Baum verzeichten und direkt rechnen, das sit dann aber nicht mehr so flexibel
(Dann müsstest du immer die innerste Klammer finden, dann parsen (erst nach + und - dann nach * und /) und rechnen und den Klammerausdruck durch das Erbebis ersetzen. Wiederholen, bis nur noch eine Zahl vorhanden ist.)