D
dict
Gast
Ich habe viele Strings ohne Leerzeichen, in denen ein Wort enthalten sein kann, nun möchte ich diese herausfiltern, die ein deutsches Wort enthalten.
Dazu habe ich mir ein Wörterbuch mit 300 000 Einträgen als .txt runtergeladen und in ein Array eingelesen und bin wie unten zu sehen vorgegangen, doch dauert diese Methode relativ lang ( ca. 1 Sekunde ), das ist bei mehreren 1000 Strings zu viel.
Ich nehme von jedem Wort die z.B. ersten 4 Buchstaben und lasse diese suchen, wenn nicht gefunden, dann die nächsten 4 Buchstaben usw., weil es ja keine Leerzeichen gibt und die Länge unbekannt ist.
Mir fällt aber auch keine effizientere Methode ein, wenn ihr einen Link oder irgendwelche Vorschläge habt, wäre ich sehr erfreut, programmieren noch nicht so lange und bei bspw. Office geht die Rechtschreibprüfung auch sehr schnell voran.
Dazu habe ich mir ein Wörterbuch mit 300 000 Einträgen als .txt runtergeladen und in ein Array eingelesen und bin wie unten zu sehen vorgegangen, doch dauert diese Methode relativ lang ( ca. 1 Sekunde ), das ist bei mehreren 1000 Strings zu viel.
Ich nehme von jedem Wort die z.B. ersten 4 Buchstaben und lasse diese suchen, wenn nicht gefunden, dann die nächsten 4 Buchstaben usw., weil es ja keine Leerzeichen gibt und die Länge unbekannt ist.
Mir fällt aber auch keine effizientere Methode ein, wenn ihr einen Link oder irgendwelche Vorschläge habt, wäre ich sehr erfreut, programmieren noch nicht so lange und bei bspw. Office geht die Rechtschreibprüfung auch sehr schnell voran.
Java:
dict( String output, String[] dictionary, byte minLength )
{
String word; //aktuelles Wort
while( output.length() >= minLength //solange Gesamtstring größer ist als die Mindestwortlänge)
{
word = output.substring( 0, minLength );
Pattern p = Pattern.compile(word);
for( int i = 0; i < dictionary.length; i++ ) //alle Wörterbucheinträge werden durchlaufen
{
Matcher m = p.matcher(dictionary[i]);
if( m.find() )
{
return true;
}
}
output = output.substring( 1 );
}
return false;
}