Python では、次のように文字列を三重引用符で囲むだけで、< や " などの特殊文字をエスケープすることを心配せずに HTML 文字列を作成できます。
html_string = """
<html>
<body>
<p>My text with "quotes" and whatnot!<p>
</body>
</html>
"""
Javaでこれを行う同様の方法はありますか?
Python では、次のように文字列を三重引用符で囲むだけで、< や " などの特殊文字をエスケープすることを心配せずに HTML 文字列を作成できます。
html_string = """
<html>
<body>
<p>My text with "quotes" and whatnot!<p>
</body>
</html>
"""
Javaでこれを行う同様の方法はありますか?
Python のように Java では実行できません。ただし、Eclipse を使用している場合は、[ウィンドウ] -> [設定] -> [Java] -> [エディタ] -> [タイピング] に移動します。最後のチェック ボックスは、[文字列リテラルに貼り付けるときにテキストをエスケープする] です。それを確認します。カーソルが引用符の間にあるときに貼り付けると、エスケープされます。
同様の質問からベンジスミスのトリックをエコーするには、別の文字を使用して後で置き換えることができます。
String myString = "using `backticks` instead of quotes".replace('`', '"');
JSON でテストを書いているときに役に立ちました。
String json = "{`kind`:`file`,`sid`:802,`rid`:5678 ,`attrs`:{`name`:`FILE-WG-2468`}}".replace('`', '"');
// vs
String json = "{\"kind\":\"file\",\"sid\":802,\"rid\":5678 ,\"attrs\":{\"name\":\"FILE-WG-2468\"}}";
前述の目的のために、Java Server Pagesはトリプルがなくてもトリックを行います"""
:-)
No, but some tools escape it for you when you paste it, like eclipse.
Java ソース コードでは、二重引用符は特殊文字であり、文字列リテラルを宣言するために使用されます。エスケープせずに文字列リテラルに二重引用符を含めることはできません。
一般に、ソース コードでそのような文字列をハード コーディングすることは避けようとします。特に、自分が頻繁にハード コーディングを行っていることに気付いた場合は、ソースとして扱うのが面倒であり、その場合、再コンパイルせずに変更できます。テキスト データにランタイム パーツを提供する必要がない場合は、プロパティ ファイルからデータを読み取るだけの簡単な方法で済むか、Apache Velocityなどのテンプレート エンジンを使用して文字データを分離し、リンクされたユーザー ガイドの例のいくつかは、HTML で正確にそれを行います。