string - 在 Scala 中比较字符串列表

标签 string list scala

我知道列表是不可变的,但我仍然对如何处理它感到困惑。我有两个字符串列表 - 例如:

var list1: List[String] = List("M", "XW1", "HJ", "K")
var list2: List[String] = List("M", "XW4", "K", "YN")

我想遍历这些列表并查看元素是否匹配。如果没有,程序将立即返回 false。 .如果匹配,它将继续迭代,直到找到以 X 开头的元素。 .如果确实是 X , 我要返回 true不管数字是否相同。

我遇到的问题是目前我有一个条件说明如果两个元素不匹配,则返回 false立即地。这是一个问题,因为显然 XW1XW4不一样,它将返回 false。我怎样才能绕过它并确定它与我的眼睛匹配,而不管数字是多少?

我还有一个计数器,它有两个长度的变量来解释列表可能具有不同长度的事实。我的计数器上升到最短列表:for (x <- 0 to (c-1)) (c 是柜台)。

最佳答案

您想使用 zipAllforall

def compareLists(l1: List[String], l2: List[String]): Boolean =
  l1.zipAll(l2, "", "").forall {
    case (x, y) =>
      (x == y) || (x.startsWith("X") && y.startsWith("X"))
  }

请注意,我假设空字符串始终不同于任何其他元素。

关于string - 在 Scala 中比较字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64016343/

相关文章:

java - 在 ExecutionContext 和/或 Java 线程池中是否替换了死线程?

scala - scala.concurrent.blocking 的坏用例?

class - 如何在编译时获取单例对象的类?

java - 计算每个唯一字符的出现次数

python - 在 python 中,如何在没有任何共享元素的情况下将 list1 的元素均匀分布在 list2 的元素上?

java - 将不同类型的对象与可比较的对象进行比较

java - 扩展列表的 ArrayList

Java 扫描仪字符串输入

java - 字符串构建器如何管理对单个对象的多线程访问和可变性?

r - 将逗号分隔的字符串拆分为 R 中定义数量的片段