一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java字符串相似度算法

java字符串相似度算法

2019-12-09 14:37Benjamin_whx JAVA教程

這篇文章主要介紹了java字符串相似度算法,是Java實現比較典型的算法,具有一定參考借鑒價值,需要的朋友可以參考下

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

 

復制代碼代碼如下:
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程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品第一国产综合精品蜜芽 | 国产成人久久精品推最新 | 国产精品中文字幕 | 国产精品视频久久 | 国产1区2区三区不卡 | 污到湿的爽文免费阅读 | 国色天香社区视频在线观看免费完整版 | 亚州人成网在线播放 | 欧美日韩在线观看区一二 | 国产伦精品一区二区 | 哇嘎在线精品视频在线观看 | 日本理论片中文在线观看2828 | 欧美一区二区三区高清不卡tv | 夫妻性生活免费在线观看 | 福利三区| 日本三级s级在线播放 | 2019天天干天天操 | 久久这里只精品热在线18 | a级黄色网| 日本老妇成熟 | 国产伦精品一区二区三区免费观看 | 俄罗斯13一14处出血视频在线 | 国产亚洲人成网站天堂岛 | 国产精品欧美一区二区 | 女教师雪白老汉 | 国产hd老头老太婆 | 亚洲伦理一区 | 99九九精品免费视频观看 | 免费视频片在线观看大片 | 九九精品免视频国产成人 | 超级乱淫伦短篇小说做车 | 亚洲国产天堂久久综合网站 | 操日日 | 色淫阁小说 | 1769在线观看 | 国产福利在线观看第二区 | 2020国产精品永久在线观看 | 亚洲va久久久噜噜噜久久狠狠 | 四虎永久在线精品波多野结衣 | 五月天色综合 | 狠狠综合视频精品播放 |