スカラ文字列関数を使用して、スカラ関数SUBSTRING_INDEX()をどのようにエミュレートできますか?例えばMySQL SUBSTRING_INDEX()をscalaでエミュレートするには?
のMySQL:
SELECT SUBSTRING_INDEX('This is test number one', ' ', 3);
Scalaで同じ達成するために、どのように戻っThis is test
?
スカラ文字列関数を使用して、スカラ関数SUBSTRING_INDEX()をどのようにエミュレートできますか?例えばMySQL SUBSTRING_INDEX()をscalaでエミュレートするには?
のMySQL:
SELECT SUBSTRING_INDEX('This is test number one', ' ', 3);
Scalaで同じ達成するために、どのように戻っThis is test
?
私はこれを取得しません。これは、必要に応じて機能する少しシンプルなソリューションです。
object Main {
def main(args: Array[String]): Unit = {
val str = "this is a string"
val substring = takeWords(str, ' ', 3)
println(substring) // yields "this is a"
}
def takeWords(s: String, splitAt: Char, n: Int): String = {
s.split(splitAt) take n mkString(" ") //or whatever separator you need
}
}
私はこれをテストしませんでしたが、期待どおりに動作するはずです。
def substringWithIndex(str: String, splitter: String, index: Int): String = {
str.split(splitter).zipWithIndex.foldLeft("") { (acc, i) =>
if(i._2 == 0)
i._1
else if(i._2 < index)
acc + splitter + i._1
else
acc
}
}
def substringIndex(str: String, n: Int, splitter: String = "\\s+"): String =
str split splitter take n mkString " "
私はあなたがより詳細に説明してくださいすることができ、あなたの出力を得ていないのですか? –