Scala 字符串技巧或方法,每次“|”时插入一个新行或其他字符被放置

Scala String trick or method that inserts a new line or other character each time an "|" is placed

首先,我很抱歉这个问题看起来很模糊,但目前我还没有找到关于此事的任何信息。

前段时间一位同事与我谈论幺半群和 JSON 解析器,然后他向我展示了一种构造字符串的方法,看起来或多或少是这样的(基于我糟糕的记忆):

strangeMethodOrTrick = {

  | Lorem ipsum dolor sit amet
  | consectetur adipiscing elit
  | sed do eiusmod
  | tempor incididunt

}.toString

有一次他提到,每次“|”输入字符,这意味着在创建最终字符串后,在每行的末尾放置一个换行符。

再次为没有提供有关该主题的更多信息而道歉,今天我问了我的同事这件事,但他说他不记得那样的事情或与此相关的任何事情。

就我而言,我也没有找到任何信息,我只记得代码的样子,到目前为止我还没有在 Scala 文档中找到它。

如果有人知道此策略,如果您知道名称或我如何找到更多相关信息,我将不胜感激。

除此之外,祝大家新年快乐!

它不是内置功能,也不会插入新的换行符。标准库为字符串 stripMargin 提供了一个扩展方法,它从字符串的每一行中去除任何前导空格后跟 |

val str = 
  """|multiple lines
     |in one string
     |with stripMargin""".stripMargin

请注意,在调用 stripMargin 之前,换行符已经是字符串的一部分,因为我在三引号 """ 的帮助下构造了一个多行字符串。 stripMargin 所做的只是删除前导空格和 |.

正如您在 docs 中看到的那样,有一个 stripMargin 方法,如果您愿意,可以使用 | 以外的其他字符调用该方法,例如stripMargin('#').