Ako získať slovo v reťazci Strla za predpokladu, že slová sú rozdelené medzerou?
Príklad:
val s = "Hello world1, world2, world"
Očakávaný výkon: "world"
odpovede:
0 pre odpoveď č. 1Chcel by som ísť string.split(" ").lastOption
, Majte však na pamäti, že namiesto medzery sa môžu použiť aj iné prázdne znaky
1 pre odpoveď č. 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, len si robím srandu. Len to urobte:
string.split("").reverse.takeWhile(_ != " ").reverse.mkString("")
Alebo toto:
string.replaceAll("^.* ", "")
Alebo toto:
"\S+$".r.findFirstIn(string).get
Alebo možno:
string.split(" ").last
alebo
string.split(" ").reverse.head
Atď.