Porównanie stringów, częściowe, w jakim stopniu się pokrywają

0

Cześć, szukam jakiegoś rozwiązania jak porównać dwa stringi, znak po znaku, żebym mógł na koniec stwierdzić że pokrywają się np. w 80%.
Są do tego jakieś biblioteki, czy trzeba samemu coś klepnąć?
Myślałem o tablicy i porównywaniu po elemencie, ale te stringi są dosyć długie, może być dość sporo, więc nie wydaje mi się żeby to było najbardziej optymalne rozwiązanie

2

Algorytm porównywania ciągów i oceniania ich podobieństwa nazywa się Odległością Levenshteina - https://pl.wikipedia.org/wiki/Odleg%C5%82o%C5%9B%C4%87_Levenshteina. Oczywiście to jedna z możliwych opcji, ale na początek proponuję się zapoznać z tym hasłem.

2

W jednym z projektów używałem:
https://www.nuget.org/packages/SimMetrics.Net/

https://github.com/StefH/SimMetrics.Net
bardzo przyjemnie się używa:

double matchAccuracy=  first.Trim().ToLowerInvariant().ApproximatelyEquals(second.Trim().ToLowerInvariant(), SimMetricType.SmithWaterman);

biblioteka oferuje dużo metryk do wyboru :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1