斯卡拉。如何获得String中的最后一个单词

时间:2016-03-14 13:15:38

标签: scala

给定一个字符串,如何在Scala中获取最后一个单词,假设单词除以空格?

示例:

val s = "Hello world1, world2, world"

预期输出:"world"

2 个答案:

答案 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。但请记住,可以使用其他空白字符代替空格