繁体   English   中英

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

[英]Counting differences in 2 strings which have the same length

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

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

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

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

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

或者你可以 stream 这个长度可以说是更优雅的单行:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM