Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[TuT] Obliczenia matematyczne w String.


Rekomendowane odpowiedzi

Opublikowano

Pewnie nie wszycy wiedzą jak wykonać obliczenie matematyczne w stringu, szczególnie ci zaczynający naukę. Jest to bardzo proste i nie trzeba rozdzielać naszego stringu na części a potem to dodawać itp itd. Można to fajnie wykorzystać przy tworzeniu kalkulatora. Ponadto nasze działania mogą być dość skomplikowane np : (5*6/2)*8+5 i program nie będzie miał z tym najmniejszych problemów.

 

Dobra, to do dzieła !

 

 ScriptEngineManager mgr = new ScriptEngineManager();
 ScriptEngine engine = mgr.getEngineByName("JavaScript");

Własnie utworzyliśmy instancje klasy ScriptEngineManager - która daje nam dostęp do nowych funkcji. Więcej na http://docs.oracle.com/javase/6/docs/api/javax/script/ScriptEngine.html

Następnie do zmiennej typu ScriptEngine przypisujemy silnik JavaScript.

Trzeba pamiętać aby w getEngineByName(); jako argument String wpisać JavaScript.

 

        Object rs = engine.eval("4*2");
        Double drs = (Double) rs;
        int toprint = drs.intValue();
        System.out.println(toprint);

 

Następnie tworzymy nowy obiekt rs funkcji eval. Funkcja ta, wykonuje nam zadania matematyczne z String'u. Wynikiem tego jest typ double - no ale raczej nie chcemy wyniku 8.0 tylko po prostu 8.

Więc teraz castujemy nasz Obiekt rs do klasy Double a następnie zamieniamy go na int - poprzez funkcję intValue();.

Na koniec wyświetlamy nasz wynik - w tym wypadku 8.

 

Jeżeli coś jest nie jasne, piszcie w komentarzach.

 

 

 

Cały kod:

 

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;




public class Main {
    public static void main(String[] args) throws ScriptException{
        ScriptEngineManager mgr = new ScriptEngineManager();
        ScriptEngine engine = mgr.getEngineByName("JavaScript");
        Object rs = engine.eval("4*2");
        Double drs = (Double) rs;
        int toprint = drs.intValue();
        System.out.println(toprint);
    }
}

 

Proszę o zdjęcie kilku % ;) Z góry dzięki.

//gif w sygnie

Opublikowano

Oh ten 3F zaskakuje wszystkich :D

 

Przydatne. Dzięki

  • 2 tygodnie później...
  • 1 rok później...
Opublikowano

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...