1. 程式人生 > >簡單的字串相似度匹配加排序

簡單的字串相似度匹配加排序

    今天遇到一個問題,需要將一組字串,跟結果需要的字串相比較,根據相似性排列出來,思考了一個下午,想了一個簡易的匹配演算法,寫出程式碼的時候下班了,回家除錯了幾次後就成功了,特此將該演算法寫出來。
   思路:將一組字串儲存到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);  //
       }
    }

經測試,可以實現相似度比較,這只是一個簡易的相似度比較演算法,肯定有不足之處,望諒解並指出。