problem z pętlą 'if'

0

</b>Witam Was drodzy forumowicze,
mam problem ze swoją pętlą, która wygląda tak:

else if(type == 0)
						{
							int length = nazwa.length();
							int id1 = nazwa.indexOf('#');
							int id2 = nazwa.indexOf('#', id1+1);
							int id3 = nazwa.indexOf('#', id2+1);
							status = nazwa.substring(0, id1);
							nazwa_pliku = nazwa.substring(id1+1, id2);
							uzytkownik = nazwa.substring(id2+1, id3);
							zawartosc_pliku = nazwa.substring(id3+1, length);
							
							//===============================
							
System.out.println("[---" + status + "--- " + nazwa_pliku + " --- " + uzytkownik + " --- " + zawartosc_pliku + " ---]");
							
				if(status=="begin")
					{
									System.out.println("Faza 1...");
        							file = new File(nazwa_pliku);//Otwieranie pliku
        							fos = new FileWriter(file);//strumień plikowy WY pracujący na bajtach
									bos = new BufferedWriter(fos);//buforowanie strumienia bajtów	
								}
							
							else 
							if(status=="during")
								{
									System.out.println("Faza 2...");
        							System.out.println("Trwa zapis do pliku...");
    								bos.write( zawartosc_pliku ); 
    								bos.newLine(); 
								}
    						
     					
     		else
     		{
    								System.out.println("Faza 3...");
    								System.out.println("Status: " + status);
    							
   									bos.close(); 	//Close the output stream	
   							
   									//*******************************************
   									FileReader file_read = new FileReader(nazwa_pliku);
   									dane = new BufferedReader(file_read);
   									System.out.println("-----Odczyt zapisanego wczesniej pliku wyslanego przez uzytkownika------");
   									while ((linia=dane.readLine())!=null)
        								{
      							 			System.out.println(linia);	
        								}
        							System.out.println("-----KONIEC-----");
        							//********************************************
     							}
     							
     						
        					}

Jak widzicie przy podanieu jakiegoś Stringa, np. 0begin#devaux.txt#Michal#jakistekst

I nawet jesli String status bedzie "begin", bądź "during" to zawsze przechodzi do else...do ostatniej trzeciej fazy. Jak widzicie całośc kodu już znajduje się w pętli 'if'. Czego to mozę być przyczyna? Jak to rozwiązać?

0

Przyczyna : Java;
Generalnie nie należy używać operatora ==, musisz użyć metody equal(?) lub jakoś tak, poszukaj w google, a najlepiej zmień język.

0

chucherko:
Operator == sprawdza czy dwie referencje są równe (zapamiętaj: w Javie są albo typy prymitywne jak int, float, char albo referencje do obiektów np String czy do tablic np float[]). Klasa String na metodę equals albo equalsIgnoreCase do porównywania zawartości Stringów. Najlepiej użyć jej tak: "during".equals(status), wtedy nie trzeba sprawdzać explicite czy (referencja) status jest nullem.

0

A mnie za to bardzo ciekawi, co to jest ta pętla if, widocznie coś mi musiało umknąć :)

0

A mnie tak swoją drogą dziwi, że przeciążyli operator + dla stringów, a nie przeciążyli == (albo żeby nie mieszać, jakiś === :>)

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