这在 Groovy 中非常好:
println '''First line,
second line,
last line'''
多行字符串。我在一些语言中看到了更进一步的工具,可以删除第 2 行的缩进等,因此该语句将打印:
First line, second line, last line
并不是
First line, second line, last line
在 Groovy 中可以吗?
这在 Groovy 中非常好:
println '''First line,
second line,
last line'''
多行字符串。我在一些语言中看到了更进一步的工具,可以删除第 2 行的缩进等,因此该语句将打印:
First line, second line, last line
并不是
First line, second line, last line
在 Groovy 中可以吗?
您可以stripMargin()
为此使用:
println """hello world!
|from groovy
|multiline string
""".stripMargin()
如果您不想要前导字符(如本例中的管道),也有stripIndent()
,但字符串的格式需要稍有不同(因为最小缩进很重要)
println """
hello world!
from groovy
multiline string
""".stripIndent()
来自文档stripIndent
从字符串中的每一行去除前导空格。前导空格数最少的行确定要删除的数字。计算要去除的前导空格数时,将忽略仅包含空格的行。
更新:
关于使用操作员来做这件事,我个人不建议这样做。但是对于记录,它可以通过使用扩展机制或使用类别(更简单和更笨重)来完成。类别示例如下:
class StringCategory {
static String previous(String string) { // overloads `--`
return string.stripIndent()
}
}
use (StringCategory) {
println(--'''
hello world!
from groovy
multiline string
''')
}