equals i oc dalej jeśli false

0

Mam program uzytkownik podaje pewna wartośc(string) i jest on porównywany z innym stringiem(pobierany z pliku)

if(pierwszy.equals(drugi)){ są równe zrób to i tamto}

i teraz chciałbym dać else jeżeli nie sa równe dje za tym else{jeśli źle zrób to i tamto}
Wszystko ładnie pięknie działa jeżeli faktycznie podaje dwa różne , ale else jest generowane nawet gdy podaje dwa identyczne(100%) stringi WTF?.

0

jak nie dziala ci equals to zrob to z "=="
a daj pelny program

0

Poczytaj o == oraz equals pięć postów wczesniej

0

Faktycznie, wklej odrobinę więcej kodu - może błąd leży trochę gdzie indziej, dodatkowo wklej kod z dodanym blokiem else.

I patrz co napisał bogdans o == bo do Stringów się nie nada.

Pozdrawiam,

0
g = inputStream.readLine();
             while ((f = inputStream.readLine()) != null) {
             StringTokenizer st = new StringTokenizer(f,"#'\"'");
             String pierwszy= st.nextToken();
             String drugi= st.nextToken(); 
             st.nextToken();
             st.nextToken();
             if(drugi.equals(trzeci)){
             System.out.println(pierwszy);    
             } else
             {System.out.println("Nie znaleziono");
              break;
             }

Najpierw otwieram plik, user podaje trzeci, zczytuje i dalej mam to.
Całość bez else działa tak jak należy.

0

jakby kto pyta to

g = inputStream.readLine(); 

zczytuje pierwsza linie z pliku (z nagłówkiem)</cpp>

0

Zrób sobie "debuggera" i dopisz taki kod:

System.out.println(f);
System.out.println(drugi);
System.out.println(trzeci);
0

Gdzie mam to dopisać i co miało by mi to dać?
A porównywanie przez == w ogóle nie działa

0
             st.nextToken();
             st.nextToken();
             // tu
             if(drugi.equals(trzeci))
  1. Żeby wiedzieć , co jest porównywane
0

W sumie jak dałem break'a to przy pierwszym porównaniu jeżeli jest daje false to koniec i tyle. Jak nie dam break'a i podam dobrego stringa to zwróci mi to co chcesz tyle że przy kazdym złym porównaniu wyświetli "nie znaleziono" , jeżeli wszystko będzie false tylko "nie znaleziono".
Chodziło by mi o coś takiego equals porównuje wszystkie wartości jeżeli znajdzie wyświetla to co ma i tylko to , a jeżeli podam złego stringa wszystkie porównania będa false to raz wyświetlił "nie znaleziono"

0
	
g = inputStream.readLine();
             while ((f = inputStream.readLine()) != null) {
             StringTokenizer st = new StringTokenizer(f,"#'\"'");
             String pierwszy= st.nextToken();
             String drugi= st.nextToken();
             st.nextToken();
             st.nextToken();
             boolean znaleziony=false;
             if(drugi.equals(trzeci)){
                 System.out.println(pierwszy);
                 znaleziony=true; 
             }
             }
      if(!znaleziony)
      {
            System.out.println("Nie znaleziono");
      }
0

Działa dzięki za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1