【问题标题】:Counting differences in 2 strings which have the same length计算 2 个长度相同的字符串的差异
【发布时间】:2023-01-07 02:19:13
【问题描述】:

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

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

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

【问题讨论】:

  • 使用循环遍历相应的字符,比较它们,如果它们不相同则增加计数器。

标签: java string comparison


【解决方案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();

【讨论】:

    猜你喜欢
    • 2020-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多