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

Java, porownanie zmiennej String

Object Storage Arubacloud
0 głosów
289 wizyt
pytanie zadane 3 marca 2022 w Java przez coriver Nowicjusz (170 p.)
Hej, mam pytanie co do prostego weryfikatora w języku Java.

Dlaczego po zadeklarowaniu

String login = "admin";

a później poproszeniu o podanie loginu komendą

login1 = wczytaj.nextLine();

Wynik (login == login1) zawsze daje wartość fałsz?

Przy określeniu login jako zmiennej int, oraz pobieraniu danych funkcja wczytaj.nextInt(); w zależności od poprawności funkcja boolean daje wartość prawda lub fałsz, a przy stringach jest to zawsze fałsz.

 

Jak mogę zadeklarować zmienna String a nastepnie skutecznie porownać ją do tej wpisanej z klawiatury/pobranej z pliku? Z góry dziękuje za odpowiedź

1 odpowiedź

+3 głosów
odpowiedź 3 marca 2022 przez adrian17 Ekspert (344,860 p.)
Java jest pod tym względem dość głupia, musisz wywołać `.equals()` żeby porównywać stringi. `==` porównuje tutaj referencje, tzn - sprawdza czy oba stringi to jest dosłownie ten sam obiekt, a nie czy dwa obiekty mają tą samą zawartość.
komentarz 3 marca 2022 przez coriver Nowicjusz (170 p.)
Super, działa! Dziękuje :)
komentarz 3 marca 2022 przez Wiciorny Ekspert (269,790 p.)

@adrian17, ty mi tu nie wyjeżdżaj, że Java jest głupia! Po prostu staruszka trochę nie przemyślała wszystkiego na początku.... :), a jak się już coś raz zrobi to wiadomo ... się nie poprawia 

komentarz 3 marca 2022 przez Ehlert Ekspert (212,670 p.)

@coriver, warto w tym przypadku użyć yoda conditions

String myString = null;
if (myString.equals("foobar")) { /* ... */ }
// This causes a NullPointerException in Java

String myString = null;
if ("foobar".equals(myString)) { /* ... */ }
// False this is, as expect you should
1
komentarz 3 marca 2022 przez Wiciorny Ekspert (269,790 p.)
zalezy od tego, czy ma doczynienia ze zmienna, czy stałą - literał stała- to fakt lepiej porównać ją do "wartosci" ergo explicite
Ha i zabawne jest to, że wszystko zaczyna mieć swoje "własne nazwy" w zakresie pojęciowym :D.

Podobne pytania

0 głosów
1 odpowiedź 1,261 wizyt
0 głosów
2 odpowiedzi 1,254 wizyt
pytanie zadane 26 października 2019 w C i C++ przez Karpik Użytkownik (680 p.)
0 głosów
2 odpowiedzi 1,107 wizyt
pytanie zadane 12 lipca 2017 w Java przez embid123 Użytkownik (630 p.)

92,568 zapytań

141,420 odpowiedzi

319,622 komentarzy

61,954 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...