Scala:从字符串中删除后缀集(子字符串)的惯用方法

cod*_*mer 1 scala

我正在寻找一种从 Scala 中的字符串中删除后缀(子字符串)集的惯用方法。

val inputString = "abc@xyz.com"
val suffixes = List("\"", "@xyz.com")
Run Code Online (Sandbox Code Playgroud)

基本上,后缀列表是从外部加载的,因此不是静态的。因此我不能使用链接 stripSuffix 方法的方法

(PS - 我将使用 inputString.stripPrefix("\"") 删除开头的 "

Tyl*_*ler 5

您可以使用foldLeftto 和该.stripSuffix()函数来迭代动态后缀列表,并将它们从字符串中一一删除。

val inputString = "abc@xyz.com"
val suffixes = List("\"", "@xyz.com")
val strippedString = suffixes.foldLeft(inputString) { (string, suffix ) => 
    string.stripSuffix(suffix)
}
Run Code Online (Sandbox Code Playgroud)

输出:abc

通过这种方法,后缀的顺序将影响您的输出。