如何在 Scala 中连接 Char 类型元素

How to concatenate Char type elements in Scala

我想从字母表中的字母中计算大小为 3 的所有组合(在 vocabulary 中存储为 Seq[Char])并将每个组合输出为 Seq[Char],同时存储它按顺序排列。

这里是字母表的定义:

 val alphabet:Seq[Char] = Seq('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z')

这段代码是我写的

def enumProduct3(vocabulary: Seq[Char]): Seq[Seq[Char]] = {
    // vocabulary = alphabet
    val keys:Seq[Seq[Char]] = (for {x<-vocabulary;y<-vocabulary;z<-vocabulary} yield(x + y + z).toSeq).toSeq
  }

我收到 type mismatch 错误:

[error]  found   : Unit
[error]  required: Seq[Seq[Char]]

我搜索了 Scala API 以连接 Char 类型元素,但没有找到任何东西。

如果你想要像 Luis Miguel 在你的问题中评论的那样的 Seq[Char],你应该 yield Seq(x, y, z)

如果您想将字符连接成一个字符串,您可以使用插值器:

s"$x$y$z"

你的 enumProduct3 中有两个问题 - yield 应该是 Seq(x, y, z) 并且 method 应该是 return value:

def enumProduct3(vocabulary: Seq[Char]): Seq[Seq[Char]] = {
  // vocabulary = alphabet
  val keys: Seq[Seq[Char]] = for {x <- vocabulary; y <- vocabulary; z <- vocabulary}
    yield Seq(x, y, z)
  keys
}

或者只是:

def enumProduct3(vocabulary: Seq[Char]): Seq[Seq[Char]] = for {
  x <- vocabulary; y <- vocabulary; z <- vocabulary
} yield Seq(x, y, z)