0

我需要找到两个字符串之间不匹配的字符数。目前我通过将字符串转换为字符数组并逐个元素比较来做到这一点。

有没有其他方法可以实现上述要求。

注意:将字符串视为小写

输入:

输入

输出

输出 :

2

4

3 回答 3

1

StringUtils在 Apache commons.lang 中有一个获取两个字符串的 Levenshtein 距离的方法

于 2012-06-19T11:23:21.390 回答
0

这是您描述的方式,但它是最简单的实现方式:

int counter = 0;
for(int i = 0; i < str1.length(); i++) if(str1.charAt(i) != str2.charAt(i)) counter++;

它们只需两行代码即可,无需显式创建一个全新的字符数组。

于 2014-10-11T00:56:04.057 回答
0

如果这两个字符串的大小不同,则以下代码将返回字母的完全不匹配。

你可以试试这个——

    String ip1 = "input"; // input1
    String ip2 = "utput"; // input2
    int count = 0; // difference in string
    String ipx2 = ip2;
    for (int j = 0; j <= ip2.length(); j++) {
        int value = ip1.indexOf(ipx2);
        if (value != -1) {
            if (("").equals(ipx2)) { // if the second string is blank after continous reducing
                count = ip1.length() + ip2.length();
            } else {
                count = ip1.length() + ip2.length() - 2 * ipx2.length();
            }
            break;
        } else {
            count = ip1.length() + ip2.length(); // if there is no match at all
        }
        ipx2 = ip2.substring(j);
    }
    System.out.println("" + count);
}

您将不得不检查输入是否有一些数据。我没有做过那个检查。

于 2012-06-19T12:08:44.613 回答