Wprowadzanie danych

0

Witam!
Jestem początkujący, więc proszę o wyrozumiałość.

Chcę w netBeansie odczytać i obliczyć wartość wyrażenia z jTextfield wklepanego z klawiatury. Chodzi o wyrażenia matematyczne typu : 2*(3x)+5 i tym podobne. Czy istnieje jakiś w miarę nieskomplikowany sposób rozwiązanie tego problemu, tak żebym nie musiał analizować stringa znak po znaku. Proszę o jakąś podpowiedź, naprowadzenie mnie.

Pozdrawiam!

0

Nie wiem czy dobrze zrozumiałem w czym jest problem. Poniższa odpowiedź dotyczy takiego rozumienia pytania: chcę kompilować wpisane do pola tekstowego wyrażenia, a nie chcę pisać kompilatora.
Ja sobie poradziłem tak:

  1. Utworzyłem interface
    public interface Function
    {
    double compute(double x);
    }
</ol>
2.Zapisuję do pliku tekstowego xxxx.java coś takiego <code>
public class xxxx implements Function
{
   public double compute(double x)
  {
     return to_co_jest_w_polu_tekstowym;
  }
}

3.Kompiluję plik xxxx.java:
String[] cmds={"javac.exe","",".",xxxx.java"};
Process p=Runtime.getRuntime().exec(cmds);

4.Tworzę obiekt klasy xxxx: <code>
   Class klasa=Class.forName("xxxx");
   Function fun=(Function)klasa.newInstance();  
Korzystam z tego co zrobiłem:
double y=fun.compute(4.12);</li> </ol>
Nie jestem pewien czy jest to rozwiązanie proste, ale wydało mi się prostsze niż pisanie kompilatora.
Bogdan S.
0

jeśli chodzi o takie coś to lepiej użyć tego http://www.beanshell.org/ bo małe i można dołączyć do aplikacji...

0

Wielkie dzięki za wskazówki, myślę że sobie poradzę.

Pozdrawiam!
Flesz :-)

0

Znalazłem świetną bibliotekę pełniącą funkcje parsera, autorstwa Łukasza Pielaka
może się komuś przyda:
http://pielak.tuchola.pl/jparser/pindex.html

Pozdrawiam !!

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