Rumah >Java >javaTutorial >Bagaimana untuk Menyahi Huruf Rentetan Java dengan betul?

Bagaimana untuk Menyahi Huruf Rentetan Java dengan betul?

Barbara Streisand
Barbara Streisandasal
2024-12-21 02:50:09118semak imbas

How to Properly Unescape Java String Literals?

Bagaimanakah untuk Menyingkirkan Java String Literal dalam Java?

Isunya

Mengekstrak literal rentetan daripada kod sumber Java dan menggunakannya dalam fungsi memerlukan lulus versi literal yang tidak dapat dilepaskan. Ini melibatkan penukaran jujukan melarikan diri seperti n kepada baris baharu dan menjadi satu .

Fungsi Tidak Terhindar

1. Apache Commons Lang org.apache.commons.lang.StringEscapeUtils.unescapeJava()

Walaupun fungsi ini wujud, ia mempunyai beberapa had:

  • Abaikan nol
  • Tidak mengendalikan oktal
  • Tidak dapat memproses pelarian yang mematuhi regex seperti a, e dan cX
  • Tidak menawarkan sokongan untuk mata kod Unikod logik mengikut nombor
  • Menggunakan kod UCS-2 dan bukannya kod UTF-16

2. Unescaper Tersuai

Penyelesaian alternatif ialah fungsi tersuai yang menangani had kod Apache:

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

Fungsi ini menyediakan keupayaan tidak melarikan diri yang komprehensif, termasuk:

  • Larian standard (a, e, f, n, r, t)
  • Perlapanan melarikan diri ( , N, NN, N, NN, NNN)
  • Kawal aksara (?cX)
  • Hex lama melarikan diri (xXX)
  • Perl hex melarikan diri (!x{XXX})
  • Tidak disokong melarikan diri (b dilalui)

Atas ialah kandungan terperinci Bagaimana untuk Menyahi Huruf Rentetan Java dengan betul?. 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