ホームページ >Java >&#&チュートリアル >Java 文字列リテラルを適切にエスケープ解除する方法

Java 文字列リテラルを適切にエスケープ解除する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-12-21 02:50:09175ブラウズ

How to Properly Unescape Java String Literals?

Java で Java 文字列リテラルをエスケープ解除する方法

問題

Java ソース コードから文字列リテラルを抽出し、それらを関数で利用するには、リテラルのエスケープされていないバージョンを渡します。これには、n のようなエスケープ シーケンスを改行と単一の .

エスケープ解除関数

1 に変換することが含まれます。 Apache Commons Lang org.apache.commons.lang.StringEscapeUtils.unescapeJava()

この関数は存在しますが、次のような制限があります。

  • null を無視します
  • 扱いません8 進数
  • a、e、cX などの正規表現に準拠したエスケープを処理できません
  • 数値による論理 Unicode コード ポイントはサポートされません
  • 代わりに UCS-2 コードを使用しますUTF-16 コード

2. Custom Unescaper

代替ソリューションは、Apache コードの制限に対処するカスタム関数です。

public static final String unescape_perl_string(String oldstr) {
    /* ... Code ... */
}

この関数は、次のような包括的なエスケープ解除機能を提供します。

  • 標準エスケープ (a、e、f、n、r、 t)
  • 8 進エスケープ ( 、N、NN、N、NN、NNN)
  • 制御文字 (?cX)
  • 古い 16 進エスケープ (xXX)
  • Perl 16 進エスケープ(!x{XXX})
  • サポートされていないエスケープ (b はスルーされます)

以上がJava 文字列リテラルを適切にエスケープ解除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。