簡單的字串相似度匹配加排序
阿新 • • 發佈:2018-12-14
今天遇到一個問題,需要將一組字串,跟結果需要的字串相比較,根據相似性排列出來,思考了一個下午,想了一個簡易的匹配演算法,寫出程式碼的時候下班了,回家除錯了幾次後就成功了,特此將該演算法寫出來。 思路:將一組字串儲存到list中,用兩個for迴圈,先將list裡第一個字串與完整的結果字串進行比較,匹配成功的,就跳出迴圈,匹配不成功,就將第二個字串與完整的結果字串進行比較,若成功,就將其放到list裡的第一位,不成功,就迴圈。內層迴圈結束時,將結果字串去掉最後一個字元,再進行迴圈比較,這樣做是為了拍出相似性比較高的字串。 程式碼如下: //需要比較的字串以百度為例 String result = "百度"; String result1 = result; int alength = result.length(); for(int i=0; i<alength; i++) { for(int j=i+1; j<alength; j++) { if(appSList.get(i).getName().equals(result1)) { break; } else if(appSList.get(j).getName().equals(result)) { Collections.swap(appSList,i,j) } } if (alength>0) { result1 = result.substring(0, alength - i - 1); // } }
經測試,可以實現相似度比較,這只是一個簡易的相似度比較演算法,肯定有不足之處,望諒解並指出。