Datentypen Casting?!

  • Themenstarter Themenstarter Xetus
  • Beginndatum Beginndatum
X

Xetus

Gast
Hallo,
ich habe irgendwie ein Problem bei dem folgenden Befehl,
mit dem ich einfach ein Textfile durchlaufen will und die Lines zählen möchte.


Java:
String Line;
while(Line = bf.readLine() != null){
			number++;
		}

Eclipse zeigt mir an, can not convert from boolean to String.
Aber warum?
Gibt es ne Möglichkeit das Problem zu lösen?

Danke

Gruß
 
Im Prinzip sind es zwei Anweisungen.
Eine Wertzuweisung und eine Prüfung auf den Wahrheitsgehalt.

wenn((line bekommt den Wert einer Eingabe) line ist ungleich null?)
 
Hat etwas mit der Rangfolge der Operatoren zu tun, hier mal ein nützlicher Link: Klick

Zuerst wird [c]bf.readLine() != null[/c] ausgewertet -> ergibt true/false
Dann wird versucht das Ergebnis (true/false) der Variable [c]Line[/c] zuzuweisen, dies geht aber nicht da boolean != String.
 
Es stimmt. Es hat etwas mit einer Rangfolge zu tun. Ähnlich wie bei den Grundrechenarten.
Indem ich aber eine Addition in Klammern einschließe, kann ich diese vor einer Multiplikation ausrechnen lassen. Das Ergebnis wird dann ein anderes sein, als ohne Klammerung.
Bsp.: w = (x + y) * z

Zuerst wird hier also die Operation in der Klammer ausgeführt.

Und genauso verhält es sich in der Anweisung
Code:
(line = br.readline()) != null

Entgegen dem, was Camill gesagt hat, wird hier zuerst das Ergebnis der readline()-Methode an den String line übergeben. Und erst danach wird geprüft, ob der String einen Wert enthält bzw. nicht null ist.
 

Zurück
Oben