目前尚不清楚您要实现的目标。
由于字符在字符串中出现多次,因此代码产生的结果可能大于字符串长度。您可以获得不超过num1.length()* num2.length()的结果。
如果您想获得两个字符串中具有相同字符的位置数,则可以在一个循环中实现相同的位置,并对两个字符串的“ charAt”调用使用相同的索引:
for(int i = 0; i < num1.length() && i < num2.length(); i++) { if(num1.charAt(i) == num2.charAt(i)){ count++; }}如果要获取出现在两个字符串中的唯一字母的数量,请分别遍历两个字符串并将这些字母添加到集合中。然后将两个集合相交。该相交集中的元素数量是您的结果:
Set<Character> characters1 = new TreeSet<Character>(); for(int i = 0; i < num1.length(); i++) { characters1.add(num1.charAt(i)); } Set<Character> characters2 = new TreeSet<Character>(); for(int i = 0; i < num2.length(); i++) { characters2.add(num2.charAt(i)); } characters1.retainAll(characters2); return characters1.size();


