You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Groovy多行字符串如何保留换行、缩进并输出含转义字符的单行格式

解决Groovy多行字符串转带转义字符单行字符串的问题

嘿,作为Groovy新手碰到这个需求完全正常,我给你两个简单实用的办法,轻松实现把多行字符串里的换行、制表符转成可见的\n、\t,最终输出单行字符串:

方法1:手动替换特殊字符

直接用Groovy的replaceAll方法,把实际的换行符和制表符替换成对应的转义字符串。代码示例:

def multilineString = """Lorem ipsum dolor sit amet, consectetur adipiscing elit, 
sed do eiusmod tempor incididunt 
ut labore et dolore magna aliqua."""

// 替换换行符为"\n",制表符为"\t"
def singleLineResult = multilineString.replaceAll('\n', '\\n').replaceAll('\t', '\\t')
println singleLineResult

这里要注意,Groovy里字符串中的反斜杠需要转义,所以我们用\\n来表示最终要输出的\n字符。

方法2:用inspect()方法一键处理

Groovy内置了inspect()方法,它会自动把字符串中的所有特殊字符转换成转义序列,非常省心。唯一需要注意的是,这个方法会给整个字符串包裹双引号,所以如果不需要外层引号的话,我们可以用substring去掉:

def multilineString = """Lorem ipsum dolor sit amet, consectetur adipiscing elit, 
sed do eiusmod tempor incididunt 
ut labore et dolore magna aliqua."""

def escapedString = multilineString.inspect()
// 去掉首尾的双引号
def singleLineResult = escapedString.substring(1, escapedString.length() - 1)
println singleLineResult

这个方法的好处是,除了换行和制表符,它还会自动处理其他特殊字符(比如双引号"会被转成\"),适合需要处理多种特殊字符的场景。

你可以自己测试一下,比如加个制表符进去:

def testStr = """Hello\tGroovy
Nice to meet you!"""
println testStr.inspect().substring(1, testStr.inspect().length()-1)
// 输出:Hello\tGroovy\nNice to meet you!

内容的提问来源于stack exchange,提问作者hjuk12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 07:03:14