java如何获得两个字符串中不匹配字符的计数?
我需要得到两个字符串中不匹配字符的计数。比如说
string 1 "hari", string 2 "malar"
现在我需要删除两个字符串中的重复项['a'&;r']在这两个字符串中都是常见的,因此请删除,现在字符串1包含“hi”字符串2包含“mla”
剩余计数=5
我试过这段代码,如果在同一个sting中重复/重复不可用,它可以正常工作,就像这里的'a'在字符串2中出现两次,因此我的代码不能正常工作
for (int i = 0; i < first.length; i++) {
for (int j = 0; j < second.length; j++) {
if(first[i] == second[j])
{
getstrings = new ArrayList<String>();
count=count+1;
Log.d("Matches", "string char that matched "+ first[i] +"==" + second[j]);
}
}
}
int tot=(first.length + second.length) - count;
先来这里,;二是指
char[] first = nameone.toCharArray();
char[] second = nametwo.toCharArray();
这段代码在String 1 "sri" string 2 "hari"
中正常工作,这里的字符串字符没有重复,因此上面的代码正常工作。帮我解决这个问题
# 1 楼答案
这是我的解决方案
希望这是你需要的。如果没有,我会更新我的答案
# 2 楼答案
请尝试以下代码:
# 3 楼答案
一旦找到匹配项,您就需要
break;
:印刷品:
# 4 楼答案
这里你缺少两件事
在代码中做了以下两个更改,现在它会按预期打印结果
# 5 楼答案
如果字符匹配,只需循环两个字符串,增加计数,并从两个字符的总长度中删除这些计数
char_unmatched包含两个字符串中不相等的字符数
# 6 楼答案
我看到了其他答案并想:一定有一种更具陈述性和可组合性的方式来做这件事! 是的,但要长得多
这是我更喜欢的解决方案,但时间要长得多。你已经用安卓系统标记了这个问题,所以我没有使用任何Java8功能,这会减少一点(但没有我希望的那么多)
然而,它会产生有意义的中间结果。但它仍然很长:——