• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Java - usunięcie ostatniego znaku ze String - przycisk wstecz (backspace)

0 głosów
3,559 wizyt
pytanie zadane 23 lipca 2016 w Java przez Janek19 Początkujący (290 p.)
zamknięte 23 lipca 2016 przez Janek19
Witam,

Robię kalkulator w Javie i chcę dodać przycisk wstecz, który będzie usuwał ostatni znak ze zmiennej String. Mógłby on działać jak klawisz backspace.

Zaimportowane klasy jakich używam to:
javax.swing.*
java.awt.*
java.awt.event.ActionEvent
java.awt.event.ActionListener

Czy może w tych klasach jest funkcja która by to zrobiła? Jeśli nie to jak to zrobić?

Z góry dziękuję za pomoc
komentarz zamknięcia: Znalazłem odpowiedź

2 odpowiedzi

+4 głosów
odpowiedź 23 lipca 2016 przez Porcupine Nałogowiec (31,560 p.)
wybrane 23 lipca 2016 przez Janek19
 
Najlepsza
Metoda substring() jest faktycznie dość prostym rozwiązaniem, jednak jej wadą jest, że od wyjścia Javy 7 złożoność czasowa substring'a to O(n), ponieważ po każdym usunięciu znaku, tak na prawdę nie obcina go, tylko tworzy sobie nowego stringa, który nie ma tego jednego znaku i podmienia referencje. Żeby to troszkę zoptymalizować mógłbyś zaproponować własną implementację potrzebnej struktury - na przykład tablicę char[], z dodatkową zmienną int index, która by się inkrementowała / dekrementowała w zależności czy wpisujesz, czy usuwasz dany znak. Takie rozwiązanie działałoby w czasie stałym.

Pozdrawiam,
2
komentarz 23 lipca 2016 przez Kornelia Kobiela Nałogowiec (33,340 p.)
Dzięki za zwrócenie uwagi. Kolejny dzień, w którym dowiedziałam się czegoś nowego.
+3 głosów
odpowiedź 23 lipca 2016 przez Kornelia Kobiela Nałogowiec (33,340 p.)

Wiesz, klasa String udostępnia metodę substring(), która jest przeciążona. 

https://docs.oracle.com/javase/8/docs/api/java/lang/String.html Tutaj masz dokumentację na temat klasy String. Poczytaj i wyciągnij wnioski :)

Pozdrawiam

Podobne pytania

0 głosów
1 odpowiedź 730 wizyt
pytanie zadane 6 marca 2018 w PHP przez krzysztofz Nowicjusz (120 p.)
0 głosów
2 odpowiedzi 2,279 wizyt
0 głosów
1 odpowiedź 922 wizyt
pytanie zadane 17 października 2015 w C i C++ przez baszmest Gaduła (3,080 p.)

93,733 zapytań

142,669 odpowiedzi

323,287 komentarzy

63,293 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...