计算 2 个长度相同的字符串的差异

Counting differences in 2 strings which have the same length

提问人:Some Ace 提问时间:1/7/2023 最后编辑:MureinikSome Ace 更新时间:1/7/2023 访问量:47

问:

假设我有两个字符长度相同的字符串。他们看起来像这样。

String s1 = "R20k20r20";
String s2 = "R21k20r20";

我真的不在乎差异在哪里,但我希望能够计算它们之间有多少差异。在这种情况下,它应该只是 1。在这种情况下,实现这一目标的最简单方法是什么?

Java 字符串 比较

评论

4赞 Pshemo 1/7/2023
使用 loop 遍历相应的字符,比较它们,如果它们不是相同的增加计数器。

答:

3赞 Mureinik 1/7/2023 #1

您可以迭代字符串的长度,并为每个不同的字符递增一个计数器:

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

或者你可以流式传输这个长度,可以说是更优雅的单行:

long numDiffs = 
    IntStream.range(0, s1.length()).filter(i -> s1.charAt(i) != s2.charAt(i)).count();