2016-06-29 59 views
-1

我即將比較等長度的字符串。然後我需要計算他們的差異。我會開始做手工 - 但由於有這樣的方法工具箱,我想知道是否有一個函數可以計算出現的差異?或者創建一個我可以統計元素的集合?是否有函數返回兩個字符串之間的差異計數?

+0

您是否在尋找編輯距離?有一些箱子可以提供例程來計算,通常使用Levenshtein算法。 – BurntSushi5

+0

nope,你可以/需要自己寫一個 –

回答

2

實現很簡單:

str_a.chars().zip(str_b.chars()).filter(|x| x.0!=x.1).count() 
4

您可以使用strsim箱子。它提供了各種不同的字符串差異方法,如Hamming,Levenshtein,Damerau-Levenshtein,Jaro和Jaro-Winkler。我個人喜歡Damerau-Levenshtein的區別,它計算需要交換的相鄰字符的數量以及需要刪除,插入或替換以將其中一個字符串轉換爲另一個字符的字符數。海明距離

extern crate strsim; 
let difference = strsim::damerau_levenshtein(a, b); 
+0

ha hamming肯定是我必須做的事情 - 但使用一個箱子來解決這個練習會有點不好意思。但我會看看他們的解決方案。 Mybe我可以找到我正在尋找的功能/方法。謝謝 – xetra11

相關問題