How to split a string into words in Scala

2 Answers

0 votes
object SplitStringProgram {

  def splitString(s: String, delims: String): List[String] = {
    val re: scala.util.matching.Regex = delims.r
    val parts: Array[String] = re.split(s)

    parts.filter(_.nonEmpty).toList
  }

  def main(args: Array[String]): Unit = {
    val s: String = "-c, c++.. c#:: -java ,php...python      scala"
    val delims: String = "[ ,.:\\-!]+"

    val tokens: List[String] = splitString(s, delims)

    tokens.foreach(println)
  }
}


/*
run:

c
c++
c#
java
php
python
scala

*/

 



answered Aug 29 by avibootz
edited Aug 29 by avibootz
0 votes
object SplitStringProgram {

  def splitString(s: String, delims: String): List[String] = {
    val delimSet: Set[Char] = delims.toSet

    val normalized: String =
      s.map(ch => if (delimSet.contains(ch)) ' ' else ch)

    normalized.split(" ").filter(_.nonEmpty).toList
  }

  def main(args: Array[String]): Unit = {
    val s: String = "-c, c++.. c#:: -java! ,php...python:      go!"
    val delims: String = " ,.:\\-!"

    val tokens: List[String] = splitString(s, delims)

    tokens.foreach(println)
  }
}



/*
run:

c
c++
c#
java
php
python
go

*/

 



answered Aug 29 by avibootz
...