Rumah >Java >javaTutorial >Bagaimana untuk Melarikan diri dari Simbol Paip dengan Betul untuk Pemisahan Rentetan di Jawa?

Bagaimana untuk Melarikan diri dari Simbol Paip dengan Betul untuk Pemisahan Rentetan di Jawa?

Linda Hamilton
Linda Hamiltonasal
2024-12-25 01:19:18334semak imbas

How to Properly Escape the Pipe Symbol for String Splitting in Java?

Melepaskan Simbol Paip untuk Pemisahan Rentetan dalam Java

Kelas Java String menyediakan kaedah split() untuk membahagikan rentetan kepada tatasusunan subrentetan menggunakan aksara pembatas atau ungkapan biasa. Apabila membelah dengan simbol paip (|), tingkah laku yang tidak dijangka timbul kerana simbol paip ialah metakarakter dalam ungkapan biasa.

Isu ini berpunca daripada peraturan ungkapan biasa:

  • Simbol paip (|) mewakili pengendali OR dalam ungkapan biasa.
  • Dalam rentetan Java, aksara garisan belakang () ialah escape watak.

Oleh itu, apabila menggunakan test.split("|"), | watak ditafsirkan sebagai pengendali ATAU, bukan sebagai simbol paip literal. Untuk menyelesaikan masalah ini, anda perlu melarikan diri dari simbol paip menggunakan .

Penyelesaian 1: Melarikan diri dari Simbol Paip

Untuk melarikan diri dari simbol paip, gunakan garis miring ke belakang berganda, bertulis sebagai \ dalam rentetan. Ini akan mengarahkan Java bahawa | harus dianggap sebagai watak literal, bukan sebagai metacharacter.

String test = "A|B|C||D";
String[] result = test.split("\|");

Penyelesaian 2: Gunakan Pattern.quote()

Sebagai alternatif, anda boleh menggunakan Pattern Kaedah .quote() untuk mencipta versi escaped paip simbol.

String test = "A|B|C||D";
Pattern pattern = Pattern.quote("|");
String[] result = test.split(pattern);

Output Jangkaan:

Kedua-dua penyelesaian akan menghasilkan output yang diingini:

>A<
>B<
>C<
><
>D<

Atas ialah kandungan terperinci Bagaimana untuk Melarikan diri dari Simbol Paip dengan Betul untuk Pemisahan Rentetan di Jawa?. 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