/ / Scala. Jak uzyskać ostatnie słowo w ciągu [zamknięte] - scala

Scala. Jak zdobyć ostatnie słowo w String [closed] - scala

Biorąc pod uwagę ciąg znaków, jak uzyskać ostatnie słowo w Scali, zakładając, że słowa są podzielone spacją?

Przykład:

val s = "Hello world1, world2, world"

Oczekiwany wynik: "world"

Odpowiedzi:

0 dla odpowiedzi № 1

Poszedłbym przez string.split(" ").lastOption. Należy jednak pamiętać, że zamiast spacji można użyć innych pustych znaków


1 dla odpowiedzi nr 2
   def lastW(s: String) = {
@tailrec
def lw(s: Array[Char], i: Int = s.length-1, w: String=""): String = s(i) match {
case(" ") => w
case c if i == 0 => c+w
case c => lw(s, i-1, c+w)
}
lw(s.toCharArray)
}

Nie, tylko żartuję. Po prostu zrób to:

 string.split("").reverse.takeWhile(_ != " ").reverse.mkString("")

Albo to:

  string.replaceAll("^.* ", "")

Albo to:

 "\S+$".r.findFirstIn(string).get

Albo może:

 string.split(" ").last

Lub

 string.split(" ").reverse.head

Itp.