Java: Jak udělat ze String matematický výraz?
Ahoj, potřebuji ze Stringu např: (10-20)/50
udělat matematický výraz a vypočítat ho :) poradíte prosím
Ahoj, potřebuji ze Stringu např: (10-20)/50
udělat matematický výraz a vypočítat ho :) poradíte prosím
Zpět do poradny Odpovědět na původní otázku Nahoru
v akom jazyku? pre konkretny jazyk hladaj funkciu eval. bud bude interna alebo ju uz niekto napisal.
Poradna.net zdraví Igora! (host)
Igor žije!!! Čau :)
zijem, cau. :) ot: dnes je formula 1, budes pozerat?
Taky OT:
To jsem málem nezaregistroval, budu.
ot pokracuje: o 1:00 je kvalifikacia, presunuli ju kvoli dazdu.
OT:
Klidně mohli na dvě hodiny, koupil jsem sedmičku ___ za 249,- Kč. Budu se udržovat v bdělém stavu.
Tyvole nazdar ... ty se tu taky ukážeš jednou za sto let co
Podle toho tedy vypadá, že tu IgoraK zase dlouho neuvidíme
Škoda, jeho kurzy pro mladé hackery bylo zábavné počtení.
SuperOT: podle avataru to vypadá, že IgorK vychovává následovníka (-ici)
V Javě bohužel taková funkce není, takže si ji můžeš buď naprogramovat sám nebo se to dá ochcat přes zavolání javascriptu z Javy.
Ale to zavolání JS může být dost velká bezpečnostní díra.
Proč myslíš?
Protože se tam dá vnutit v podstatě libovolný JS kód.
Jo takhle, tam by se dalo narvat v podstate cokoli i Java kód. No musí si to hlídat, třeba nějakým šikovným regexpem...
a nešlo by použít Iteger.parseInt? používal jsem to když jsme ve škole dělali kalkulačku. Tady je část pro sčítání:
To by teda nešlo, tady se řeší úplně jiný problém...
Ak si to budeš implementovať sám, tak najjednoduchšie je spraviť si 2 zásobníky (jeden pre operátory, druhý pre operandy), postupne prechádzať výrazom (napíšeš si lexer, t.j. funkciu, ktorá ti bude vracať nasledujúci token zo vstupu) a vyhodnocovať podľa priority operátorov. Pozri si algoritmus shunting-yard.