Rumah >Java >javaTutorial >Bagaimana untuk Menyahkan Java String Literal: Java API atau Penyelesaian Tersuai?

Bagaimana untuk Menyahkan Java String Literal: Java API atau Penyelesaian Tersuai?

Barbara Streisand
Barbara Streisandasal
2025-01-05 01:41:41496semak imbas

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

Bagaimanakah untuk Menyingkirkan Java String Literal dalam Java?

Masalah:

Semasa memproses kod sumber Java menggunakan Java, anda menghadapi keperluan untuk mengekstrak literal rentetan untuk dihantar ke fungsi yang menerima String. Walau bagaimanapun, anda memerlukan versi String yang tidak dilepaskan, di mana aksara seperti n ditukar kepada baris baharu, dan ditukar kepada tunggal , dsb.

Fungsi Java API

Soalan: Adakah terdapat fungsi dalam Java API yang boleh melakukan ini tidak melarikan diri?

Jawapan: Malangnya, kaedah org.apache.commons.lang.StringEscapeUtils.unescapeJava() mempunyai had tertentu:

  • Ia tidak sokongan untuk null.
  • Ia tidak boleh mengendalikan perlapanan melarikan diri.
  • Ia tidak mempunyai sokongan untuk titik kod Unikod logik, hanya untuk UTF-16.

Penyelesaian Tersuai

Soalan: Adakah terdapat cara yang boleh disesuaikan untuk mendapatkan fungsi ini daripada perpustakaan atau menulisnya diri sendiri?

Jawapan: Ya, anda boleh mencipta string unescaper anda sendiri yang menangani had kod Apache. Berikut ialah contoh:

// Code provided by user in the answer

Unescaper tersuai ini menyediakan:

  • Sokongan untuk pelarian oktal ( , N, dsb.) sehingga 777.
  • "! " corak awalan untuk melarikan diri tidak disokong dalam regex Java, seperti cX.
  • Pengendalian titik kod Unikod Logik, menghalang isu dengan aksara pengganti.
  • Pencetakan titik kod Unikod boleh disesuaikan menggunakan fungsi pembantu uniplus() .

Kesimpulan

Oleh memahami batasan API Java untuk melarikan diri rentetan dan menggunakan penyelesaian tersuai seperti contoh yang diberikan, anda boleh mencapai unescaping literal rentetan yang teguh untuk keperluan pemprosesan khusus anda.

Atas ialah kandungan terperinci Bagaimana untuk Menyahkan Java String Literal: Java API atau Penyelesaian Tersuai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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