Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz
  • 0

Problem z porównywaniem stringow


krystianpolanow

Pytanie

4 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

Opublikowano
Dnia 4.04.2019 o 09:52, Garfinkel napisał:

Właściwie to lepiej robić to tak: 

 

if ("xd".equals(haslo))

 

taka konstrukcja jest bezpieczniejsza - zadziała nawet w przypadku gdy nasz string  z jakiegoś powodu będzie null (w metodzie powyżej będzie wtedy NPE).

Nie wprowadzaj ludzi w błąd, operator jest szybszy w preprocesorze i kompilacji do bytecode niż funkcja. W dodatku == jest do adresów referencyjnych, equals działa tylko na stringach kierunkowych co jest bardzo niestabilne. Ostatnie co mogę dodać to, że equals nie porównuje, tylko ocenia, == nadaje się lokalnie i może porównywać do każdych lokalizacji w pamięci.

Jestem programistą, zaufaj mi :)

Opublikowano

Właściwie to lepiej robić to tak: 

 

if ("xd".equals(haslo))

 

taka konstrukcja jest bezpieczniejsza - zadziała nawet w przypadku gdy nasz string  z jakiegoś powodu będzie null (w metodzie powyżej będzie wtedy NPE).

Opublikowano

String to klasa, więc porównywanie obiektów typu string, w sposób String == String, sprawdzi czy obie te zmienne wskazują na ten sam obiekt. Post wyżej podano odpowiedź na twoje pytanie.

TuByłaSygnatura.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...