String w ciągu matematycznym, czy istnieje możliwość wyciągnięcia lub pozbycia się strings

0

Witam serdecznie
Czy istnieje możliwość aby ["3+2-4"] usunąć strings aby wykonać działanie np. w tablicy. Czy jest to nie możliwe fizycznie (na danej tablicy), chodzi mi oczywiście o ciąg liczbowy w jednym cudzysłowie, bo gdyby strings były podzielone to tak ale chodzi mi o całość pozdrawiam serdecznie.

3

Sa do tego algorytmy, np.: https://en.wikipedia.org/wiki/Shunting-yard_algorithm
Wygodniej by Ci było najpierw "stokenizować" ten string, czyli ewaluować go w postaci: ["3", "+", "2", "-", "4"].

1

@Freja Draco eval is evil xD pamiętam nie tak dawno był tu ktoś, kto zaimplementował kalkulator na evalu. Okazało się, że bardzo łatwo było go można wykrzaczyć albo sprawić, żeby pokazywał błędny wynik.

Czyli lepiej sparsować, to akurat dość proste jest do napisania (w Pythonie kiedyś w jakieś 3-5 linijek napisałem parser wyrażeń razem z nawiasami, w JS też coś takiego pisałem, ale w więcej linijek, bo JS nie jest aż tak ekspresyjny) i dobre ćwiczenie na programowanie.

Ale problem jest ogólnie znany, opisany i zaimplementowany tysiące razy, więc pewnie najlepiej będzie poszukać odpowiedzi w istniejących już materiałach w internecie:
https://www.google.com/search?q=how+to+parse+arithmetic+expressions
poza tym (hasła do wyszukania):
parser,
tokenizer,
regular expressions (też mogą się przydać)

Albo można poszukać też gotowej biblioteki, np.:
https://www.npmjs.com/package/mathjs

1 użytkowników online, w tym zalogowanych: 0, gości: 1