java判断字符串(含中文)的内容相似度

简介: java判断字符串(含中文)的内容相似度
/**
     * 判断地址相似
     * 此处简单的判断字符串的内容80%相似即可
     * @param str1
     * @param str2
     * @return
     */
    public static boolean isNearby(String str1, String str2) {
   
        Map<Character, int[]> vectorMap = new HashMap<>();
        char[] chArray1 = str1.toCharArray();
        for (char c : chArray1) {
   
            if (vectorMap.containsKey(c)) {
   
                vectorMap.get(c)[0]++;
            } else {
   
                int[] arr = new int[2];
                arr[0] = 1;
                vectorMap.put(c, arr);
            }
        }
        char[] chArray2 = str2.toCharArray();
        for (char c : chArray2) {
   
            if (vectorMap.containsKey(c)) {
   
                vectorMap.get(c)[1]++;
            } else {
   
                int[] arr = new int[2];
                arr[1] = 1;
                vectorMap.put(c, arr);
            }
        }
        double vector1Modulo = 0;
        double vector2Modulo = 0;
        double vectorProduct = 0;
        for (Map.Entry<Character, int[]> entry : vectorMap.entrySet()) {
   
            int[] arr = entry.getValue();
            vector1Modulo += arr[0] * arr[0];
            vector2Modulo += arr[1] * arr[1];
            vectorProduct += arr[0] * arr[1];
        }
        vector1Modulo = Math.sqrt(vector1Modulo);
        vector2Modulo = Math.sqrt(vector2Modulo);
        if (vector1Modulo == 0 || vector2Modulo == 0) {
   
            return false;
        } else {
   
            double v = vectorProduct / (vector1Modulo * vector2Modulo);
            return  v >= 0.8;
        }
    }
相关文章
|
22天前
|
算法 Java
Java 有效字符串判断
Java 有效字符串判断
21 0
|
6天前
|
前端开发 JavaScript Java
【前端学java】详解java中的字符串操作(11)
【8月更文挑战第10天】详解java中的字符串操作
11 3
【前端学java】详解java中的字符串操作(11)
|
4天前
|
Java API 开发者
|
6天前
|
人工智能 Java 容器
十个Java字符串操作示例程序
十个Java字符串操作示例程序
6 1
|
8天前
|
存储 JavaScript Java
Java中未被初始化的字符串打印出“null”?
在Java中,未初始化的`String`变量默认值为`null`。打印此类变量时输出“null”,是因为`PrintStream`类中的`print`方法特别处理了`null`值,将其转换为字符串“null”。从JDK 17开始,`println`方法通过`String.valueOf`间接实现相同功能。当拼接包含`null`的字符串时,如`s1 + &quot;BLACK&quot;`,结果为“nullBLACK”,这是因为字符串构建过程中`StringBuilder`的`append`方法将`null`转换为“null”。
|
6天前
|
Java
Java中 字符串,字符串数组,整型数组初始化
Java中 字符串,字符串数组,整型数组初始化
6 0
|
1月前
|
Java
Java 替换字符串 replace replaceAll
【7月更文挑战第10天】Java 替换字符串 replace replaceAll
Java 替换字符串 replace  replaceAll
|
1月前
|
存储 JSON Java
Java对象转换为JSON字符串
在Java开发中,常需将数据对象转换为JSON存储,如使用Fastjson库。要将Java对象转为JSON,可调用`JSON.toJSONString(obj)`;反向转换则用`JSON.parseObject(str, Class)`。
|
1月前
|
安全 Java
Java8 拼接字符串 StringJoiner
Java8 拼接字符串 StringJoiner
|
1月前
|
存储 安全 Java
Java面试题:请解释Java中的字符串和字符串缓冲区?
Java面试题:请解释Java中的字符串和字符串缓冲区?
20 0