Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Groovy多行字符串不';不能识别只有空格的行_Groovy - Fatal编程技术网

Groovy多行字符串不';不能识别只有空格的行

Groovy多行字符串不';不能识别只有空格的行,groovy,Groovy,我猜这是一个众所周知的问题,有一个有效的解决办法 我得到的输出中有几行包含固定数量的空格。作为单元测试的一部分,我正在做一个字符串比较测试,如下面的一个。有没有一种方法可以在不使用stripIndent()或类似工具修改字符串的情况下使其通过 注意,下面的测试应该在多行字符串中testStart和testEnd之间看似空行的地方有4个空格。但是,堆栈溢出可能正在删除它 String singleLine = 'testStart\n \ntestEnd' String multiLine

我猜这是一个众所周知的问题,有一个有效的解决办法

我得到的输出中有几行包含固定数量的空格。作为单元测试的一部分,我正在做一个字符串比较测试,如下面的一个。有没有一种方法可以在不使用stripIndent()或类似工具修改字符串的情况下使其通过

注意,下面的测试应该在多行字符串中testStart和testEnd之间看似空行的地方有4个空格。但是,堆栈溢出可能正在删除它

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'''