Problem bei der Suche (binarySearch) vom deutschen Sonderzeichen "ß" im einem Array

Status
Nicht offen für weitere Antworten.

wannasee

Mitglied
Hallo liebe Leute,

1- ich habe in einem Array alle Konsonanten des Deutschen eingetragen. Der Array sieht so aus:

final static char[]consonantsList={'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l','m', 'n','p', 'q', 'r', 's', 'ß', 't', 'v', 'w', 'x', 'y', 'z'};

2- danach teste ich, ob das Zeichen "ß" im Array consonantsList enthalten ist; dies mit der Java-Funktion binarySearch :

Arrays.binarySearch(consonantsList, 'ß');

(Der Array ist natürlich vorher sortiert mit der Anweisung:
Arrays.sort(consonantsList);)

Nun ist mein Problem, dass ß nicht gefunden wird, obwohl es im Array ist . Hat jemand Erfahrung mit diesem Problem? Liegt es am Encoding? Für alle andere Characters im Array klappt die Suche, nur für ß nicht

Ich habe gelesen, dass das Problem bei deutschen Umlauten auch zutrifft, z.B: ä, ö, ü usw.... Gibt es bei java eine generelle Lösung für solche Sonderzeichen der deutschen Sprache?

Ich würde mich sehr freuen, wenn jemand mir hilft. Vielen Dank im Voraus.

Oli
 
Java:
import java.util.*;

public class A{
	public static void main(String[] args){
		char[]consonantsList={'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l','m', 'n','p', 'q', 'r', 's', 'ß', 't', 'v', 'w', 'x', 'y', 'z'};
		Arrays.sort(consonantsList);
		System.out.println(Arrays.binarySearch(consonantsList, 'ß'));
	}
}
Bei mir funktionierts, vllt ist das Encoding deines Texteditors anders. Ich hab TextPad 4.7.3 in der Standardkonfiguration genommen.
 
echt. Komisch!! Ich benutze Eclipse. Liegt es vllt daran? Ich schaue wie in den Standardkonfiguartion von Eclipse. Vielleicht hilft es?

Danke jedenfalls!
Gruß
 
Hi Schandro,

darf ich fragen, welches Encoding Du hast in deinem Editor?

Habe gerade utf-8, utf-16, US-ASCII, ISO 8859-1 und cp1252 probiert und es funktioniert immer noch nicht.

Gruß. O
 
Hi Schandro,

bei dir hat es doch nicht funktioniert, denn deine Ausgabe liefert die Position 21 für "ß". Dabei ist die richtige Position von "ß" gleich 15. Genau das ist mein Problem. Bei mir funktioniert es allerdings immer noch nicht :noe:
 
Doch, ist richtig.

Wir sortieren das Array doch vorher, deswegen wird das "ß" an die letzte Position verschoben => 21
 
Da hast Du Recht Schandro. Glaube ich mache eine Pause bis morgen und mache dann weiter. mein Kopf braucht es, glaube ich 🙂
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben