使用Groovy将字符串拆分到多行,而不使用额外的空格?

jdg4fx2g  于 2022-09-21  发布在  其他
关注(0)|答案(2)|浏览(452)

假设我有一个很长的字符串,把它放在一行会降低可读性。

这将是解决方案,它是有效的:

  1. def string = "This is a very
  2. long string"

但是,如果我在方法或if语句中的行已经缩进了怎么办?然后我必须把字符串的第二部分放在这里,这不是很好读。

  1. if (condition) {
  2. def string = "This is a very
  3. long string"
  4. }

如何才能使输出如下所示:

  1. This is a very long string

就像这样:

  1. if (condition) {
  2. def string = "This is a very
  3. long string"
  4. }
kxkpmulp

kxkpmulp1#

如果您想要换行符,可以使用stripMargin来帮助删除前导空格(至少在Groovy支持Java中新的多行字符串文字之前是这样)。

但是,因为您不想换行,所以我只需要“添加”字符串。这通常是一个禁忌,因为字符串在Java中是不可变的,这将创建中间示例。然而,如果您只是将字符串文字加起来((动态)groovy编译器4.x不能),那么编译器应该能够对其进行优化。但话又说回来,这可能无关紧要。如果你只想支付一次,那就让它在某个地方成为public static final String MY_CONST_STRING = ...

  1. if (1) {
  2. println "This is a very " +
  3. "long string " +
  4. "and more"
  5. }
ou6hu8tu

ou6hu8tu2#

如何才能使输出如下所示:

这是一根很长的线

如果您确实需要/希望文本定义在源文件中跨行而不在文本中包括换行符,则问题中显示的代码是一种惯用的方法:

  1. def string = "This is a very
  2. long string"

您还可以这样做:

  1. def string = '
  2. this is a
  3. very long string.'

相关问题