Groovy多行字符串不';不能识别只有空格的行
我猜这是一个众所周知的问题,有一个有效的解决办法 我得到的输出中有几行包含固定数量的空格。作为单元测试的一部分,我正在做一个字符串比较测试,如下面的一个。有没有一种方法可以在不使用stripIndent()或类似工具修改字符串的情况下使其通过 注意,下面的测试应该在多行字符串中testStart和testEnd之间看似空行的地方有4个空格。但是,堆栈溢出可能正在删除它Groovy多行字符串不';不能识别只有空格的行,groovy,Groovy,我猜这是一个众所周知的问题,有一个有效的解决办法 我得到的输出中有几行包含固定数量的空格。作为单元测试的一部分,我正在做一个字符串比较测试,如下面的一个。有没有一种方法可以在不使用stripIndent()或类似工具修改字符串的情况下使其通过 注意,下面的测试应该在多行字符串中testStart和testEnd之间看似空行的地方有4个空格。但是,堆栈溢出可能正在删除它 String singleLine = 'testStart\n \ntestEnd' String multiLine
String singleLine = 'testStart\n \ntestEnd'
String multiLine =
'''
testStart
testEnd
'''
println singleLine
println multiLine
assert singleLine == multiLine
这是由intelliJ默认设置引起的。我现在已经解决了
这是由intelliJ默认设置引起的。我现在已经解决了 这一主张理应失败。
singleLine
中的第一个字符是testStart
中的t
字符。多行
中的第一个字符是换行符,因为该字符串紧跟在开头的'
之后开始,之后的第一个字符是换行符。在字符串的末尾有相同的问题。您可以通过以下两种方式解决此问题:
String multiLine =
'''\
testStart
(assume there are 4 spaces on this line)
testEnd\
'''
或:
这一主张理应失败。singleLine
中的第一个字符是testStart
中的t
字符。多行
中的第一个字符是换行符,因为该字符串紧跟在开头的'
之后开始,之后的第一个字符是换行符。在字符串的末尾有相同的问题。您可以通过以下两种方式解决此问题:
String multiLine =
'''\
testStart
(assume there are 4 spaces on this line)
testEnd\
'''
或:
我想我可能已经发现了这个问题。我相信intelliJ会在几秒钟后从源代码的空行中删除所有空格。我添加了四个空格,并运行了测试,结果通过了。然后,几秒钟后,我看到我的光标向左跳,现在制表符和空格消失了。现在,我将查看intelliJ文档中提到的这一“功能”。即使您禁用从IDE中剥离尾随空格,您仍然会遇到另一个问题,即
多行
中不在单行
中的换行符。请看下面我的答案。我想我可能已经找到了问题所在。我相信intelliJ会在几秒钟后从源代码的空行中删除所有空格。我添加了四个空格,并运行了测试,结果通过了。然后,几秒钟后,我看到我的光标向左跳,现在制表符和空格消失了。现在,我将查看intelliJ文档中提到的这一“功能”。即使您禁用从IDE中剥离尾随空格,您仍然会遇到另一个问题,即多行
中不在单行
中的换行符。请看下面我的答案。我的例子有缺陷,这是正确的答案。我的真实类最初的问题是由intellij问题自动记忆引起的。谢谢杰夫。我的例子有缺陷,这是正确的答案。我的真实类最初的问题是由intellij问题自动记忆引起的。谢谢你,杰夫。
String multiLine =
'''testStart
(assume there are 4 spaces on this line)
testEnd'''