给定一个字符串,如何在Scala中获取最后一个单词,假设单词除以空格?
示例:
val s = "Hello world1, world2, world"
预期输出:"world"
答案 0 :(得分:1)
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)
}
不,开个玩笑。就这样做:
string.split("").reverse.takeWhile(_ != " ").reverse.mkString("")
或者这个:
string.replaceAll("^.* ", "")
或者这个:
"\\S+$".r.findFirstIn(string).get
或者也许:
string.split(" ").last
或者
string.split(" ").reverse.head
等
答案 1 :(得分:0)
我会去string.split(" ").lastOption
。但请记住,可以使用其他空白字符代替空格