用于比较两个字符串的char的基本java代码

时间:2015-03-05 08:00:15

标签: java string methods char compare

我想编写接受两个字符串的代码,并返回两个字符串的char不匹配的次数之和。

public int solution(String s1, String s2) {
    int sum = 0;
    for (int i=0; i<s1.length(); i++){
        if (s1.charAt(i) != s2.charAt(i))
            sum++;
    }
    return sum;
}

当两个字符串的长度相同时运行此代码。我希望我需要添加到代码中,以便string 1&gt;的长度string 2的长度,代码仍然运行,并且还包括#char聊天无法与string 2进行比较,因为string 2更短。 (反之亦然)

前:

s1: aaaaab
s2: ac

==> sum =5

s1: ab
s2: abbbb

==> sum = 3

2 个答案:

答案 0 :(得分:2)

您寻求的数字是两个步骤的组合:

  1. 代码中0到Math.min(s1.length(),s2.length())之间字符串之间的差异数。
  2. 两个字符串的长度差异。 Math.abs(s1.length()-s2.length())
  3. 添加(1)和(2)中的数字,它应该是你所寻求的数字;)

答案 1 :(得分:2)

找到两个字符串的最小和最大长度。

int min = 0, max = 0;
if(s1.length() > s2.length()) {
   max = s1.length();
   min = s2.length();
} else {
   min = s1.length();
   max = s2.length();
}

仅遍历最小长度

for (int i=0; i<min; i++){
   if (s1.charAt(i) != s2.charAt(i)) {
      sum++;
   }
}

然后在返回值

中添加max和min的差值
 return sum + (max - min);