java - 如何检查字符串相似度

标签 java string-comparison

我需要比较两个字符串并找出它们是否相似以及相似程度。例如我有一个字符串 "5000002105416" ,并与 "5000003205416" 相比它应该给我结果 0.85因为只有 2两个包含 13 的字符串中不匹配的符号符号。原因是我使用Zbar进行条码扫描,有时它会给我一个有点错误的结果,我需要检查这个结果是否与我需要匹配的一些硬编码标签相似。

最佳答案

假设您的 String 具有相同的长度,因此您需要一个迭代它们的函数,比较每个 char 并找出差异的数量:

double similarity(String a, String b) {
    if(a.length() == 0) return 1;
    int numberOfSimilarities = 0;
    for(int i = 0; i < a.length(); ++i) {
        if(a.charAt(i) == b.charAt(i)) {
            ++numberOfSimilarities;
        }
    }
    return (double) numberOfSimilarities / a.length();
}

关于java - 如何检查字符串相似度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40059553/

相关文章:

java - Java复利运算的困惑

java - 从java中的csv列添加: how do I reset variable total?

java - 为什么 JVM 不使用更多的堆内存

bash - bash 中的字符串比较。 [[ : not found

sql-server-2005 - 数据库 |字符串比较

java - 如何将 Sharepoint 日期从十六进制解析为 java.util.Date

用于将正则表达式解析为 AST 的 Java 库?

c++ - 比较从函数返回的两个 std::string 常量(两个 json-spirit get_str()s)1-liner

objective-c - 比较两个nsstrings的值

iOS Swift - 如何匹配另一个字符串为 "like"的字符串?即 "http"就像 "http://"