Как обрезать конечные пробелы строки? - PullRequest
8 голосов
/ 17 июля 2011

В Java, я могу сделать это с commons-lang:

StringUtils.stripEnd("  abc  \t", null) // => "  abc"

Я хочу знать, есть ли какой-либо встроенный метод, чтобы сделать это в Scala, или как сделать это в Scala безкакие-либо сторонние зависимости?

Ответы [ 3 ]

8 голосов
/ 17 июля 2011

Вы можете сделать это с помощью регулярного выражения:

"  string  ".replaceAll("\\s+$", "");
res0: java.lang.String = "  string"
5 голосов
/ 17 июля 2011

Другой возможный способ - использовать метод dropWhile из rich String класса с именем StringOps

scala> val y = "   abcd   ".reverse.dropWhile(_ == ' ').reverse
y: String = "   abcd"

Если вам нужно обрезать пробелы в начале строки, просто удалите reverse методы:

scala> val y = "   abcd   ".dropWhile(_ == ' ')
y: String = "abcd   "
2 голосов
/ 17 июля 2011

Без внешних зависимостей и только обрезка конца:

scala> val s = "   test   \t"
s: java.lang.String = "   test      "

scala> val Regex = """^(.*?)\s*$""".r
Regex: scala.util.matching.Regex = ^(.*?)\s*$

scala> val Regex(trimmed) = s
trimmed: String = "   test"
...