Rumah > Java > javaTutorial > Bagaimana untuk Menyahi Huruf Rentetan Java dengan Betul, Mengendalikan Semua Urutan Melarikan Diri?

Bagaimana untuk Menyahi Huruf Rentetan Java dengan Betul, Mengendalikan Semua Urutan Melarikan Diri?

Mary-Kate Olsen
Lepaskan: 2024-12-21 12:29:10
asal
814 orang telah melayarinya

How to Properly Unescape Java String Literals, Handling All Escape Sequences?

Bagaimanakah untuk Menyingkirkan Java String Literal dalam Java?

Masalahnya

Timbul keperluan untuk mengekstrak literal rentetan daripada kod sumber Java dan menghantarnya kepada fungsi yang menerima rentetan biasa. Menyahescape rentetan literal adalah penting, bermakna menukar aksara seperti n dan \, antara lain, kepada bentuk yang dimaksudkan.

Fungsi yang Tersedia untuk Unescaping Strings

  • org.apache.commons.lang.StringEscapeUtils.unescapeJava()

Walau bagaimanapun, fungsi ini mempunyai beberapa batasan:

  • Mengabaikan perwakilan aksara nol ( )
  • Tidak mengendalikan octal escape
  • Gagal mengendalikan escape yang diterima oleh Java regex (cth., a, e, cX)
  • Kurang sokongan untuk mata kod Unicode dan Pengendalian aksara UTF-16

Penyelesaian Tersuai: unescape_perl_string()

Fungsi tersuai, unescape_perl_string(), dicadangkan sebagai alternatif:

  • Mengendalikan semua keluaran rentetan Java: r, n, f, t, (antara lain).
  • Menyokong perlapanan melarikan diri: , N, NN dan lain-lain.
  • Termasuk melarikan diri tambahan: ?cX (aksara kawalan), ?x{XXX} (heksa melarikan diri dengan pendakap).
  • Menghuraikan keluaran regex Java: [JAVA IDIOT PREPROCESSOR]uXXXX.

Butiran Pelaksanaan

Fungsi unescape_perl_string():

  • Lelaran melalui rentetan input, mengendalikan urutan melarikan diri berdasarkan aksara berikut .
  • Sebagai contoh, r ditukar kepada pemulangan pengangkutan, n ke baris baharu.
  • Aksara kawalan disokong, dengan cX mewakili hasil XOR logik titik kod aksara itu dengan '@'.
  • Larian heksadesimal xXX dan x{XXX} adalah betul ditafsirkan.
  • Titik kod Unikod diiktiraf dan ditukar kepada aksaranya perwakilan.
  • Larian yang belum selesai atau tidak sah dibenderakan dan dilaporkan sebagai ralat.

Atas ialah kandungan terperinci Bagaimana untuk Menyahi Huruf Rentetan Java dengan Betul, Mengendalikan Semua Urutan Melarikan Diri?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan