Kotlin:如何以功能风格检查两个相同长度字符串的字符差异恰好是一个字符?

问题描述 投票:0回答:1

我在 Kotlin 中起草了一个对我来说足够好的函数。

fun diff(l: String, r: String): Int {
  var diff = 0
  for (i in 0 until l.length) {
    if (l[i] != r[i]) diff++
    if (diff > 1) break
  }
  return diff
}

在呼叫方,我只需检查

diff == 1

但是,我想将我的代码片段重写为函数风格的单行代码,使函数只是一个返回语句,但无法想出如何做到这一点的想法。 我认为可以使用

takeWhile
fold
函数或其他方式来解决。

请注意字符串长度相同(字符数相同,仅 ASCII)。

附注 如果您觉得我的代码片段不好,请在评论中分享您如何改进它的建议。

kotlin functional-programming string-comparison
1个回答
0
投票

鉴于字符串长度相同,您可以链接

zip
count
来获取不同字符的数量,如下所示

l.zip(r).count { (l_c, r_c) -> l_c != r_c }
© www.soinside.com 2019 - 2024. All rights reserved.