2012-05-31 9 views

Antwort

17

Hängt davon ab, wie Sie "am nächsten" definieren, aber eine gängige Methode ist die Verwendung eines Levenshtein Distance Ergebnisses. Apache Commons hat solche .

Von dort Ihre Suche Methode im Grunde wird: finden Sie die Zeichenfolge in der Sammlung, die die kleinste Levenshtein Abstand für eine bestimmte Eingabe hat.

+0

Danke, das funktioniert ganz gut :) Wenn ich chocolatedsert und chocolatepie habe und ich schokoschudiere, scheint es für Kuchen noch gehen, aber es ist immer noch viel besser als vorher: p Vielen Dank! –

+0

Zweite Verbindung ist unterbrochen. Bitte aktualisieren. (Dies ist möglicherweise der Link - https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#getLevenshteinDistance(java.lang.CharSequence,%20java.lang. CharSequence)) –

+0

@KazekageGaara danke, fertig. –

2

Da ist nichts in Java eingebaut. Sie können versuchen, eine Drittanbieter-Bibliothek wie SecondString oder FREJ.

2

Ein anderer Ansatz, der in Verbindung mit Levenshtein Distance verwendet werden kann, ist die phonetische Darstellung der Wörter zuerst. Ein Algorithmus, um dies zu tun, ist Metaphone.

Die user guide for Apache Commons Codec hat Details von diesem und einigen anderen Encodern.