我需要找到两个字符串之间不匹配字符的数量。目前我正在通过将字符串转换为char Arrays并逐个元素进行比较来实现它。
是否有其他方法可以达到上述要求。
注意: 将字符串视为小写
输入:
输入
安输出
输出:
2
答案 0 :(得分:1)
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++;
它们只适用于两行代码,无需显式创建一个全新的字符数组。