Im Grunde versuche ich nur einen Weg zu finden, um die engste Übereinstimmung (nicht unbedingt genau) eines String
Finden Sie zum Beispiel "delicous"
in {"pie", "delicious", "test"}
Das ist ziemlich offensichtlich, aber die Werte im Array sind möglicherweise nicht immer eindeutig.
Könnte mir jemand bitte mit einem Weg helfen, dies zu erreichen.
Hängt davon ab, wie Sie "am nächsten" definieren, aber eine gängige Methode ist die Verwendung eines Levenshtein-Abstands . Apache Commons hat solche eine Methode in StringUtils .
Von hier aus wird Ihre Suchmethode im Grunde: Finden Sie die Zeichenfolge in der Sammlung, die die kleinste Levenshtein-Distanz für eine gegebene Eingabe hat.
Dafür ist nichts in Java eingebaut. Sie könnten versuchen, eine Drittanbieter-Bibliothek wie SecondString oder FREJ .
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 .
Das Benutzerhandbuch für Apache Commons Codec enthält Details zu diesem und einigen anderen Encodern.
Tags und Links java pattern-matching matching string-matching