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

Java, porownanie zmiennej String

Aruba Cloud - Virtual Private Server VPS
0 głosów
375 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 Mentor (352,580 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 (280,450 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 (214,940 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 (280,450 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,971 wizyt
0 głosów
2 odpowiedzi 1,588 wizyt
pytanie zadane 26 października 2019 w C i C++ przez Karpik Użytkownik (680 p.)
0 głosów
2 odpowiedzi 1,407 wizyt
pytanie zadane 12 lipca 2017 w Java przez embid123 Użytkownik (630 p.)

93,327 zapytań

142,323 odpowiedzi

322,396 komentarzy

62,657 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...