Používání řetězec dělat Math

hlasů
-1

Snažím se, aby se kalkulačku, která umožňuje více operací (např 4 + 3-2 + 5). Můj základní myšlenka na to, jak to udělat, je pomocí této smyčky:

for (int i = 0; i < nums.length; i++) {
                switch (nums[i]) {
                case add:
                    while (func.size() < i) {
                        func.add(0);
                    }
                    func.add(i, 1);
                    type = +;
                    break;
                 //More cases for other operations

Poznámky: pár nums.length odkazuje na pole, která obsahuje vstupní rovnice rozdělení takto: nums = equation.split((?<=[-+*/%])|(?=[-+*/%]))

V ideálním případě, když jsem mít hodnotu ‚typ‘, byl bych schopen provést můj program vypočítat rovnice tím, že dělá toto:

for(int i = 1; i < nums.length; i++) {      
    ans = eq.get(0) type eq.get(func.indexOf(1)+i);
        }

Další malá poznámka: eqje ArrayList se všemi hodnotami nums.

Přesně to, co chci udělat, je mít typestát matematické operace, jako je +, -, atd. Vím, že tento kód je strašně rozbité ve způsobu, jakým jsem to zde znázorněno, ale je to prostě něco, rychle jsem napsal poskytnout příklad toho, co jsem chcete dosáhnout. Díval jsem se na další otázky podobné tomu, kde byl roztok používat Mathfunkce třídy a volání od toho, ale to nefunguje v mém programu. Každý, kdo má myšlenky na cestě k dosažení tohoto cíle? Dík!

Položena 19/03/2020 v 22:03
zdroj uživatelem
V jiných jazycích...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more