L
leodennis
Gast
hi leute, ich komm einfach nicht weiter:
Ich soll ein programm schreiben, dass naja wörter übersetzt oder so ähnlich,
dazu hab ich mehrere String-Listen (die wiederum in einer Map gespeichert) sind.
Jetzt muss ich nach der Eingabe suchen die als parameter "satz" an meine Funktion übergeben wird.
HashSets sind zwar mit contains sau schnell, aber ich will wissen ob die eingabe irgendwo im String enthalten ist und den ganzen String dann an meinene ausgabe hänge damit ich zum schluss alle einträge in den Listen die den "satz" enthalten zurückgeben kann...
naja hier mein langsamer aber funktionierender code:
wichtig ist auf jeden fall, dass es super schnell geht, weil während der eingabe schon gesucht wird (so ähnlich wie bei google...)
danke für Hilfe
lg
Leo
Ich soll ein programm schreiben, dass naja wörter übersetzt oder so ähnlich,
dazu hab ich mehrere String-Listen (die wiederum in einer Map gespeichert) sind.
Jetzt muss ich nach der Eingabe suchen die als parameter "satz" an meine Funktion übergeben wird.
HashSets sind zwar mit contains sau schnell, aber ich will wissen ob die eingabe irgendwo im String enthalten ist und den ganzen String dann an meinene ausgabe hänge damit ich zum schluss alle einträge in den Listen die den "satz" enthalten zurückgeben kann...
naja hier mein langsamer aber funktionierender code:
Java:
private Map<String,HashSet<String>> ListenMap= new HashMap<String, HashSet<String>>();
private final static String splitString = "#s#p#";
public String sucheInListen(String satz){
String ausgabe = "";
String[] splitArray;
for(String listName : ListenMap.keySet()){
ausgabe = ausgabe.concat(("\n\n-----" + listName + "-----"));
for(String eintrag : ListenMap.get(listName)){
if(eintrag.toLowerCase().contains(satz.toLowerCase())){
splitArray = eintrag.split(splitString);
if (splitArray.length>1){
ausgabe = ausgabe.concat("\n\n" + splitArray[0] + "\n" + splitArray[1]);
}else{
ausgabe = ausgabe.concat("\n\n" + splitArray[0] + "\n" + "KEIN EINTRAG!");
}
}
}
}
return ausgabe;
}
wichtig ist auf jeden fall, dass es super schnell geht, weil während der eingabe schon gesucht wird (so ähnlich wie bei google...)
danke für Hilfe
lg
Leo