String wird nach Einlesen aus Datei nicht erkannt

Diskutiere String wird nach Einlesen aus Datei nicht erkannt im Java Basics - Anfänger-Themen Bereich.
G

Goldinho

Grrrrrrrrrrrrrrrrrrrrrrr. Ich mache jetzt seit Stunden, fast schon Tagen damit rum und bin jetzt zumindest so weit, dass ich den Fehler irgendwie eingrenzen kann, auch wenn ich es nicht verstehe.

Ich habe einige Daten mittels BufferedWriter kommabegrenzt in eine Datei geschrieben. Nach dem Wieder-Einlesen (Bufferedreader) splitte ich mehrfach nach Kommas und Semikolon, um meine Daten neu aufzubereiten.

Nun ist mir hier aufgefallen, dass das Programm die eingelesenen Daten nicht mehr erkennt bzw. dass bei einem Vergleich mit einem String (also z.B. mittels
if (splittedStringausderDatei[0] == "xy") {}
nicht das korrekte Ergebnis erkannt wird, auch wenn ich per Konsolenausgabe eindeutig sehe, dass es der gleiche String ("xy" = "xy") ist.

Ich habe versucht, jeden Split nach String zu casten, hat nichts gebracht. Liegt das evtl irgendwie an einer Codierungsgeschichte?

Danke für eure Hilfe
Christian
 
mihe7

mihe7

Ich vergleiche seit einem halben Jahr Strings mit == und nie gab es Probleme :eek:
Grundsätzlich werden Objekte mit equals auf inhaltliche Gleichheit überprüft. Mit "==" vergleichst Du die Referenzen.

Dass das bei Strings nicht sofort auffällt, liegt daran, dass diese teilweise "interned" werden. Dabei werden Strings in einem Pool verwaltet und inhaltlich gleiche Strings durch gleiche Referenzen ersetzt. Beispielsweise wird der Vergleich von Literalen funktionieren, dagegen schlägt der Vergleich fehl, wenn Du explizit ein String-Objekt erzeugst:
Java:
String s1 = "x";
String s2 = "x";
String s3 = new String("x");

System.out.println(s1 == s2);
System.out.println(s1 == s3);
 
Thema: 

String wird nach Einlesen aus Datei nicht erkannt

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben