ホームページ >Java >&#&チュートリアル >Java 文字列リテラルをエスケープ解除する方法: Java API またはカスタム ソリューション?

Java 文字列リテラルをエスケープ解除する方法: Java API またはカスタム ソリューション?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-05 01:41:41527ブラウズ

How to Unescape Java String Literals: Java API or Custom Solution?

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

問題:

Java を使用して Java ソース コードを処理しているときに、文字列リテラルを抽出して、文字列を受け入れる関数に渡す必要があります。ただし、エスケープされていないバージョンの String が必要です。n などの文字は改行に変換され、単一の などに変換されます。

Java API 関数

質問: Java API 内にこれを実行できる関数はありますかアンエスケープ?

答え: 残念ながら、org.apache.commons.lang.StringEscapeUtils.unescapeJava() メソッドには次のような制限があります。

  • null のサポート。
  • 8 進数は処理できません
  • 論理 Unicode コード ポイントはサポートされておらず、UTF-16 のみがサポートされています。

カスタム ソリューション

質問: はこの機能をライブラリから取得したり、作成したりするためのカスタマイズ可能な方法があります

答え: はい、Apache コードの制限に対処する独自の文字列エスケーパーを作成できます。以下に例を示します:

// Code provided by user in the answer

このカスタム アンスケーパーは次の機能を提供します:

  • 777 までの 8 進エスケープ ( 、N など) のサポート。
  • "! 」 cX など、Java 正規表現でサポートされていないエスケープの接頭辞付きパターン。
  • 論理 Unicode コード ポイント処理により、サロゲート文字の問題を防止。
  • uniplus() ヘルパー関数を使用したカスタマイズ可能な Unicode コード ポイント印刷.

結論

の制限を理解することで、文字列をエスケープするための Java API と、提供された例のようなカスタム ソリューションを利用すると、特定の処理ニーズに合わせて文字列リテラルの堅牢なエスケープ解除を実現できます。

以上がJava 文字列リテラルをエスケープ解除する方法: Java API またはカスタム ソリューション?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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