查找两个字符串之间的不匹配数

时间:2012-06-19 11:13:21

标签: java string arrays mismatch

我需要找到两个字符串之间不匹配字符的数量。目前我正在通过将字符串转换为char Arrays并逐个元素进行比较来实现它。

是否有其他方法可以达到上述要求。

注意: 将字符串视为小写

输入:

输入

安输出

输出:

2

3 个答案:

答案 0 :(得分:1)

Apache commons.lang中的

StringUtils有一个method来获取两个字符串的Levenshtein距离。

答案 1 :(得分: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);
}

您必须检查输入是否包含某些数据。我没有那么检查。

答案 2 :(得分:0)

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

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

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