欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java字符串相似度算法

 更新時間:2015年02月03日 11:30:22   作者:Benjamin_whx  
這篇文章主要介紹了java字符串相似度算法,是Java實現(xiàn)比較典型的算法,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了java字符串相似度算法。分享給大家供大家參考。具體實現(xiàn)方法如下:

復制代碼 代碼如下:
public class Levenshtein {
    private int compare(String str, String target) {
        int d[][]; // 矩陣
        int n = str.length();
        int m = target.length();
        int i; // 遍歷str的
        int j; // 遍歷target的
        char ch1; // str的
        char ch2; // target的
        int temp; // 記錄相同字符,在某個矩陣位置值的增量,不是0就是1
       
        if (n == 0) {
            return m;
        }
       
        if (m == 0) {
            return n;
        }
       
        d = new int[n + 1][m + 1];
       
        for (i = 0; i <= n; i++) { // 初始化第一列
            d[i][0] = i;
        }
       
        for (j = 0; j <= m; j++) { // 初始化第一行
            d[0][j] = j;
        }
       
        for (i = 1; i <= n; i++) { // 遍歷str
            ch1 = str.charAt(i - 1);
            // 去匹配target
            for (j = 1; j <= m; j++) {
                ch2 = target.charAt(j - 1);
                if (ch1 == ch2) {
                    temp = 0;
                } else {
                    temp = 1;
                }
               
                // 左邊+1,上邊+1, 左上角+temp取最小
                d[i][j] = min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + temp);
            }
        }
       
        return d[n][m];
    }
   
    private int min(int one, int two, int three) {
        return (one = one < two ? one : two) < three ? one : three;
    }
   
    /**
     * 獲取兩字符串的相似度
     *
     * @param str
     * @param target
     *
     * @return
     */
   
    public float getSimilarityRatio(String str, String target) {
        return 1 - (float) compare(str, target) / Math.max(str.length(), target.length());
       
    }
   
    public static void main(String[] args) {
        Levenshtein lt = new Levenshtein();
        String str = "ab";
        String target = "ac";
        System.out.println("similarityRatio=" + lt.getSimilarityRatio(str, target));
    }
}

希望本文所述對大家的Java程序設計有所幫助。

相關文章

  • JAVA復制數(shù)組和重置數(shù)組大小操作

    JAVA復制數(shù)組和重置數(shù)組大小操作

    這篇文章主要介紹了JAVA復制數(shù)組和重置數(shù)組大小操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Java中輸入單個char類型的字符方式

    Java中輸入單個char類型的字符方式

    這篇文章主要介紹了Java中輸入單個char類型的字符方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Java Mybatis架構設計深入了解

    Java Mybatis架構設計深入了解

    在本篇文章里小編給大家整理的是一篇關于Java Mybatis架構設計詳解內(nèi)容,對此有興趣的朋友們可以參考下,希望能夠給你帶來幫助
    2021-11-11
  • SpringBoot跨域Access-Control-Allow-Origin實現(xiàn)解析

    SpringBoot跨域Access-Control-Allow-Origin實現(xiàn)解析

    這篇文章主要介紹了SpringBoot跨域Access-Control-Allow-Origin實現(xiàn)解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • Java?3年面試經(jīng)驗告訴你Mybatis是如何進行分頁的

    Java?3年面試經(jīng)驗告訴你Mybatis是如何進行分頁的

    這篇文章主要介紹了Java?3年面試經(jīng)驗告訴你Mybatis是如何進行分頁的,對于任何ORM框架,分頁的實現(xiàn)邏輯無外乎兩種,不管怎么包裝,最終給到開發(fā)者的,只是使用上的差異而已,本文給大家講解的很明白,感興趣的朋友一起看看吧
    2022-09-09
  • java序列化和serialVersionUID的使用方法實例

    java序列化和serialVersionUID的使用方法實例

    這篇文章主要介紹了java序列化和serialVersionUID的使用方法實例的相關資料,這里說明很詳細的使用方法讓你徹底學會,需要的朋友可以參考下
    2017-08-08
  • mybatis-plus之如何實現(xiàn)in嵌套sql

    mybatis-plus之如何實現(xiàn)in嵌套sql

    這篇文章主要介紹了mybatis-plus之如何實現(xiàn)in嵌套sql問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • java 抽象類與接口的區(qū)別介紹

    java 抽象類與接口的區(qū)別介紹

    這篇文章主要介紹了java 抽象類與接口的區(qū)別介紹的相關資料,需要的朋友可以參考下
    2016-10-10
  • 這一次搞懂Spring事務是如何傳播的

    這一次搞懂Spring事務是如何傳播的

    這篇文章主要介紹了這一次搞懂Spring事務是如何傳播的,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • mybatis?傳入null值的解決方案

    mybatis?傳入null值的解決方案

    這篇文章主要介紹了mybatis?傳入null值的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03

最新評論