- Scala编程实战(原书第2版)
- (美)阿尔文·亚历山大
- 407字
- 2024-04-15 12:05:15
2.2 多行字符串的创建
问题
你想在Scala中创建多行字符串,就像用其他语言的heredoc语法一样。
解决方案
在Scala中,只要使用三个双引号将想要创建成多行字符串的文本括起来即可:
虽然这样能运行,但是在这个例子中,第二行和第三行会在行首出现空白。输出这个字符串看起来像这样:
有几种方式可以解决这个问题,最好的解决方式是在多行字符串的末尾加上stripMargin方法,并使用管道符号(|)作为第二行以及之后所有行的开头:
如果不喜欢使用|符号,则只需要在调用stripMargin时指定想要使用的字符即可:
当然也可以对第二行开始所有的行进行左对齐:
所有以上方法都会产生同样的结果,即一个多行字符串,其中每一行都是左对齐的。
这些方法生成的结果是一个真正的多行字符串,每一行的末尾都有一个隐藏的\n字符。如果想把这个多行字符串转换成一个连续的行,可以在stripMargin后调用replaceAll方法,将所有的换行符替换成空格:
这会生成:
讨论
Scala多行字符串的另一大功能是,可以在字符串中直接使用单引号和双引号而不用转义:
结果为: