2016-08-29 6 views
0

スカラ文字列関数を使用して、スカラ関数SUBSTRING_INDEX()をどのようにエミュレートできますか?例えばMySQL SUBSTRING_INDEX()をscalaでエミュレートするには?

のMySQL:

SELECT SUBSTRING_INDEX('This is test number one', ' ', 3);

Scalaで同じ達成するために、どのように戻っThis is test

+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 
    } 
} 
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 
    } 
    } 
0
def substringIndex(str: String, n: Int, splitter: String = "\\s+"): String = 
    str split splitter take n mkString " " 
関連する問題