小编典典

在Java中,是否有一种无需转义引号就能编写字符串文字的方法?

java

假设你有一个字符串文字,其中带有很多引号。你可以将它们全部逃脱,但这很痛苦,而且很难阅读。

在某些语言中,你可以执行以下操作:

foo = '"Hello, World"';

但是,在Java中,''它用于char,因此你不能以String这种方式将其用于s。某些语言具有解决此问题的语法。例如,在python中,你可以执行以下操作:

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

Java是否有类似的东西?


阅读 603

收藏
2020-03-09

共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}"

2020-03-09
小编典典

不,我一直为Java中缺少不同的字符串文字语法而烦恼。

这是我不时使用的技巧:

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

我主要只对静态字段执行类似的操作。由于它是静态的,因此在初始化类后,将一次调用字符串替换代码。因此,实际上不存在运行时性能损失,并且这使代码更加清晰易读。

2020-03-09