Kalkulator Java

Kalkulator Java
S1
  • Rejestracja:około 5 lat
  • Ostatnio:3 miesiące
  • Postów:9
0

Cześć, próbuję napisać prosty kalkulator w Javie. Wszystko jest okej do momentu wybrania "=". Wtedy IDE wyrzuca błąd. Czy ktoś z was rzucić okiem i dać jakieś wskazówki co jest nie tak ? :)

https://pastebin.com/JtkEwgFP

IDE wyrzuca mi taki błąd "Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "3-2""

Z góry dziękuję :)

AK
  • Rejestracja:prawie 7 lat
  • Ostatnio:około miesiąc
  • Postów:3561
1
  1. Nie IDE ci rzuca, bo to nie jest błąd kompilacji, tylko błąd wykonania programu

  2. Nie chce mi się czytać całego kodu (a Ty masz wyjątek w jakiejś konkretnej okolicy). Ale zdaje się jakbyś chciał parsować string 3-2 funkcją do konwersji liczby (pojedynczej liczby !!!!). To tak nie działa. Właśnie parsowanie i wykonanie wyrażenia musisz sam zrobić, w bibliotece standardowej nie ma do tego gotowca.


Bo C to najlepszy język, każdy uczeń ci to powie
CountZero
  • Rejestracja:prawie 8 lat
  • Ostatnio:11 miesięcy
  • Postów:262
2

Próbujesz stworzyć liczbę ze Stringa "3-2" co nie ma sensu. Liczbę powinieneś stworzyć z wartości "3" i "2", "-" to jest operator arytmetyczny który nie jest liczbą.

AK
I to jest (to by była) jedyna inteligentna część w projekcie typu "kalkulator"
S1
  • Rejestracja:około 5 lat
  • Ostatnio:3 miesiące
  • Postów:9
0

Przepraszam ale nie do końca to rozumiem. Czy mógłbym prosić pokazanie mojego błędu na przykładzie kodu ? :)

edytowany 1x, ostatnio: silver1
AK
To ty masz łatwiej niż my. W czasie wykonania masz wyjątek, który prowadzi do konkretnej linii. I tam masz błąd.
JuniorHtmlDeveloper
JuniorHtmlDeveloper
  • Rejestracja:prawie 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:9
3

Wydaje mi się, że za dużo w tym kodzie zrobiłeś na zasadzie kopiuj/wklej, a za mało samodzielnego pisania. Dlatego, mimo, że kolega napisał Ci praktycznie konkretnie co i jak, to nie wiesz ocb. Napisałbym to od nowa, bez kopiuj/wklej.


"We wondered why people were so against using regular objects in their systems and concluded that it was because simple objects lacked a fancy name. So we gave them one, and it's caught on very nicely."
edytowany 1x, ostatnio: JuniorHtmlDeveloper
CountZero
  • Rejestracja:prawie 8 lat
  • Ostatnio:11 miesięcy
  • Postów:262
1

Opcja łatwa - używasz wyrażeń regularnych (regexów) - https://codereview.stackexchange.com/questions/84763/evaluating-an-expression-with-integers-and-as-well-as i możesz część prostych operacji arytmetycznych robić.

Opcja trudniejsza - implementujesz ONP (https://pl.wikipedia.org/wiki/Odwrotna_notacja_polska) i możesz na przykład radzić sobie z nawiasami.

edytowany 2x, ostatnio: CountZero

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.