Scala 去除尾随空格

发布于 2024-11-08 12:50:55 字数 222 浏览 0 评论 0原文

Scala String 方法(在 StringOps 类中)stripMargin 删除多行 String 的每一行中的前导空格直到并包括竖线 (|) 字符(或其他指定的分隔符)。

是否有等效的方法来删除每行的尾随空格?

我快速浏览了 Scaladocs,但找不到。

The Scala String method (in class StringOps) stripMargin removes leading whitespace from each line of a multi-line String up to and including the pipe (|) character (or other designated delimiter).

Is there an equivalent method to remove trailing whitespace from each line?

I did a quick look through the Scaladocs, but could not find one.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

浮萍、无处依 2024-11-15 12:50:55

Java String 方法 trim 删除开头和结尾的空格:

scala> println("<"+"  abc  ".trim+">")
<abc>

Java String method trim removes whitespace from beginning and end:

scala> println("<"+"  abc  ".trim+">")
<abc>
撧情箌佬 2024-11-15 12:50:55

您可以轻松地使用正则表达式:

input.replaceAll("""(?m)\s+$""", "")

正则表达式中的 (?m) 前缀使其成为多行正则表达式。 \s+ 匹配 1 个或多个空白字符和 $ 行尾(因为多行标志)。

You can easily use a regex for that:

input.replaceAll("""(?m)\s+$""", "")

The (?m) prefix in the regex makes it a multiline regex. \s+ matches 1 or more whitespace characters and $ the end of the line (because of the multiline flag).

撩动你心 2024-11-15 12:50:55

分割“n”修剪“n”mkString(就像摇滚乐一样):

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

Split 'n' trim 'n' mkString (like a 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
再浓的妆也掩不了殇 2024-11-15 12:50:55

这可能不是最有效的方法,但您也可以这样做:

val trimmed = str.lines map { s => s.reverse.dropWhile ( c => c == ' ').reverse.mkString(System.getProperty("line.seperator"))

This might not be the most efficient way, but you could also do this:

val trimmed = str.lines map { s => s.reverse.dropWhile ( c => c == ' ').reverse.mkString(System.getProperty("line.seperator"))
时光无声 2024-11-15 12:50:55

也许: s.lines.map(_.reverse.stripMargin.reverse).mkString("\n") 或使用 System.getProperty("line.separator")而不是 "\n"?!

Perhaps: s.lines.map(_.reverse.stripMargin.reverse).mkString("\n") or with System.getProperty("line.separator") instead of "\n"?!

听不够的曲调 2024-11-15 12:50:55
str.reverse.dropWhile(_ == ' ').reverse
str.reverse.dropWhile(_ == ' ').reverse
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文