如何使用scala字符串函数在scala中模拟MySQL函数SUBSTRING_INDEX()?
例如 MySQL的:
SELECT SUBSTRING_INDEX('This is test number one', ' ', 3);
返回This is test
如何在scala中实现相同功能?
答案 0 :(得分:0)
我没有测试过这个,但我认为它应该按预期工作;
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
}
}
答案 1 :(得分:0)
我也没有得到这个。这是一个更简单的解决方案,可以按需运行。
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
}
}
答案 2 :(得分:0)
def substringIndex(str: String, n: Int, splitter: String = "\\s+"): String =
str split splitter take n mkString " "