在 Java 中,有没有一种无需转义引号即可编写字符串文字的方法?

新手上路,请多包涵

假设您有一个 String 文字,里面有很多引号。你可以逃避所有这些,但这很痛苦,而且难以阅读。

在某些语言中,您可以这样做:

 foo = '"Hello, World"';

然而,在 Java 中, '' 用于 char s,所以你不能以这种方式将它用于 String s。一些语言有语法来解决这个问题。例如,在 python 中,你可以这样做:

 """A pretty "convenient" string"""

Java有类似的东西吗?

原文由 Matthew 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 525
2 个回答

答案是否定的,证明存在于 Java 语言规范 中:

   StringLiteral:
   "StringCharacters"

  StringCharacters:
   StringCharacter
   | StringCharacters StringCharacter

  StringCharacter:
   InputCharacter but not " or \
   | EscapeSequence

正如你所看到的 StringLiteral 只能被 " 绑定并且不能包含没有转义的特殊字符..

旁注:您可以在项目中嵌入 Groovy ,这将扩展 Java 的语法,允许您使用 '''multi line string ''' , ' "string with single quotes" ' 以及 "string with ${variable}"

原文由 Jack 发布,翻译遵循 CC BY-SA 3.0 许可协议

不,我一直对 Java 中缺乏不同的字符串文字语法感到恼火。

这是我不时使用的技巧:

 String myString = "using `backticks` instead of quotes".replace('`', '"');

我主要只为静态字段做类似的事情。因为它是静态的,字符串替换代码在类初始化时被调用一次。所以运行时性能损失几乎不存在,而且它使代码更易读。

原文由 benjismith 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题