加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

groovy – 是否有一个运算符可以修剪多行字符串中的缩进?

发布时间:2020-12-14 16:33:44 所属栏目:大数据 来源:网络整理
导读:这在Groovy中非常好用: println '''First line,second line,last line''' 多行字符串.我在一些语言中看到了更进一步的工具,可以删除第2行的缩进,因此该语句将打印: 06001 并不是 06002 在Groovy中有可能吗? 解决方法 你可以使用stripMargin(): println "
这在Groovy中非常好用:

println '''First line,second line,last line'''

多行字符串.我在一些语言中看到了更进一步的工具,可以删除第2行的缩进,因此该语句将打印:

06001

并不是

06002

在Groovy中有可能吗?

解决方法

你可以使用stripMargin():

println """hello world!
        |from groovy 
        |multiline string
    """.stripMargin()

如果你不想要前导字符(在这种情况下就像管道一样),那么也有stripIndent(),但是字符串需要格式化不同(因为最小缩进很重要)

println """
        hello world!
        from groovy 
        multiline string
    """.stripIndent()

来自stripIndent的文档

Strip leading spaces from every line in a String. The line with the least number of leading spaces determines the number to remove. Lines only containing whitespace are ignored when calculating the number of leading spaces to strip.

更新:

关于使用运算符这样做,我个人不建议这样做.但对于记录,可以通过使用扩展机制或使用类别(更简单和更笨重)来完成.分类示例如下:

class StringCategory {
    static String previous(String string) { // overloads `--`
        return string.stripIndent()
     }
}

use (StringCategory) {
    println(--'''
               hello world!
               from groovy 
               multiline string
           ''') 
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读