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

k10s72fa  于 2023-01-07  发布在  Java
关注(0)|答案(1)|浏览(158)

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

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

我并不关心哪里有差异,但我希望能够计算出它们之间有多少差异。在这种情况下,应该只有1。在给定的情况下,最简单的方法是什么?

daolsyd0

daolsyd01#

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

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();

相关问题