1. ホーム
  2. java

[解決済み] Javaで、引用符をエスケープせずに文字列リテラルを記述する方法はありますか?

2022-07-28 06:58:03

質問

String リテラルの中にたくさんの引用符があるとします。それらをすべてエスケープすることもできますが、それは面倒であり、読むのが困難です。

言語によっては、こうすればいいんです。

foo = '"Hello, World"';

ところが、Javaでは ''char に使用されます。 String には使えません。言語によっては、これを回避するための構文があります。例えば、pythonでは、このようにすることができます。

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

Javaにも似たようなものがあるのでしょうか?

どのように解決するのですか?

答えはノーで、その証明は Java言語仕様 :

  StringLiteral:
   "StringCharacters"

  StringCharacters:
   StringCharacter
   | StringCharacters StringCharacter

  StringCharacter:
   InputCharacter but not " or \
   | EscapeSequence

ご覧のように StringLiteral は単に " で、エスケープせずに特殊文字を含むことはできません。

余談ですが グルービー を埋め込むと、Java の構文が拡張されます。 '''multi line string ''' , ' "string with single quotes" ' そしてまた "string with ${variable}" .