Strings sind ungleich obwohl sie in der Ausgabe gleich sind

davidh38

Bekanntes Mitglied
Ich habe folgenden Code

Java:
System.out.println("nach der umwandlung " +tmp5);
System.out.println("nach der Umwandlung " +tmp9);
System.out.println();
System.out.println(tmp5.length() + "Länge "+tmp9.length());
for (int l=0;l<tmp5.length();l++){
	if (!(tmp5.charAt(l) ==tmp9.charAt(l))){
		System.out.println(tmp5.charAt(l) + " ist ungleich "+ tmp9.charAt(l));
		System.out.println("Dieser buchstabe ist nicht equal: "+l);
	}
Java:
und die Ausgabe ist wie folgt:
nach der umwandlung [url=http://katalog.ub.uni-duesseldorf.de:80/F/B2XC55E24J65DUJVB9X9FLKX1SXD7NSASVB9YX6UQIBE95QI8N-66092?func=bor-loan&amp;adm_library=DUE50]Katalog ULBD - Einfache Suche[/url]
nach der Umwandlung [url=http://katalog.ub.uni-duesseldorf.de:80/F/B2XC55E24J65DUJVB9X9FLKX1SXD7NSASVB9YX6UQIBE95QI8N-66092?func=bor-loan&amp;adm_library=DUE50]Katalog ULBD - Einfache Suche[/url]

943Länge 134
 ist ungleich &
Dieser buchstabe ist nicht equal: 112
 ist ungleich a
Dieser buchstabe ist nicht equal: 113
 ist ungleich m
Dieser buchstabe ist nicht equal: 114
 ist ungleich p
Dieser buchstabe ist nicht equal: 115
 ist ungleich ;
Dieser buchstabe ist nicht equal: 116
 ist ungleich a
Dieser buchstabe ist nicht equal: 117
 ist ungleich d
Dieser buchstabe ist nicht equal: 118
 ist ungleich m
Dieser buchstabe ist nicht equal: 119
 ist ungleich _
 
Zuletzt bearbeitet:
Vergleichst du die Strings mit [c]==[/c]? Das ist falsch, für Objekte muss man mit der [c]equals[/c]-Methode vergleichen, [c]==[/c] ist nur für Primitive und Vergleich auf gleiche Objektreferenzen.
 
Jep, den darfste mit
Code:
==
vergleichen.
Aber deine beiden Strings (tmp5 und tmp9) haben unterschiedlichen Länge. Wie sollen die dann identisch sein? Mich wundert dass da keine Exception fliegt, weil tmp5 länger als tmp9 ist.
Warum vergleichst du tmp5 und tmp9 nicht direkt mit equals?
 
Jep, den darfste mit
Code:
==
vergleichen.
Aber deine beiden Strings (tmp5 und tmp9) haben unterschiedlichen Länge. Wie sollen die dann identisch sein? Mich wundert dass da keine Exception fliegt, weil tmp5 länger als tmp9 ist.
Warum vergleichst du tmp5 und tmp9 nicht direkt mit equals?

Genau, das ist das verrückte, ich glaube, da sind irgendwo Zeichen zwischen, die nicht dargestellt werden. Wie kann ich die sichtbar machen? Oder kann man dafür sorgen, dass unsichtbare Zeichen am Ende verschwinden mit Hilfe einer Funktion?
 
trim() entfernt whitespaces am anfang und ende eines strings.
schreib dir die strings doch mal in ne datei und schau dir die mit nem vernünftigen editor an, dann siehste evtl. was da noch für zeichen stehen.
 

Zurück
Oben