Scala разделительные пробелы в пробе
Метод Scala String
(в классе StringOps
) stripMargin
удаляет ведущие пробелы из каждой строки многострочного String
до и включая символ канала (|
) (или другой обозначенный разделитель).
Есть ли эквивалентный метод для удаления конечных пробелов из каждой строки?
Я быстро просмотрел Scaladocs, но не смог найти его.
Ответы
Ответ 1
Вы можете легко использовать регулярное выражение для этого:
input.replaceAll("""(?m)\s+$""", "")
Префикс (?m)
в регулярном выражении делает его многострочным регулярным выражением. \s+
соответствует одному или нескольким символам пробела и $
концу строки (из-за многострочного флага).
Ответ 2
Java String
метод trim
удаляет пробелы с начала и конца:
scala> println("<"+" abc ".trim+">")
<abc>
Ответ 3
Разделить 'n' trim 'n' mkString (например, rock'n'roller):
val lines = """
This is
a test
a foolish
test
a
test
t
"""
lines.split ("\n").map (_.trim).mkString ("\n")
res22: String =
This is
a test
a foolish
test
a
test
t
Ответ 4
Это может быть не самый эффективный способ, но вы также можете это сделать:
val trimmed = str.lines map { s => s.reverse.dropWhile ( c => c == ' ').reverse.mkString(System.getProperty("line.seperator"))
Ответ 5
Возможно: s.lines.map(_.reverse.stripMargin.reverse).mkString("\n")
или System.getProperty("line.separator")
вместо "\n"
?!