Rumah > Java > javaTutorial > Mengapa Kaedah `split()` Java Gagal Apabila Memisahkan Rentetan dengan '|' dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Kaedah `split()` Java Gagal Apabila Memisahkan Rentetan dengan '|' dan Bagaimana Saya Boleh Membetulkannya?

Patricia Arquette
Lepaskan: 2024-12-21 06:42:11
asal
854 orang telah melayarinya

Why Does Java's `split()` Method Fail When Splitting Strings by

Memisahkan Rentetan Java dengan Simbol Paip: Menyelesaikan Masalah Kaedah Split() Tidak Berkesan

Kaedah Java split() , apabila digunakan untuk membahagikan rentetan dengan paip simbol ("|"), boleh menghasilkan hasil yang tidak dijangka, seperti yang dilihat dalam yang berikut contoh:

public static void main(String[] args) {
    String test = "A|B|C||D";

    String[] result = test.split("|");

    for (String s : result) {
        System.out.println(">"+s+"<");
    }
}
Salin selepas log masuk

Daripada output yang dimaksudkan:

>A<
>B<
>C<
><
>D<
Salin selepas log masuk

kod menghasilkan:

><
>A<
>|
>B<
>|
>C<
>|
>|
>D<
Salin selepas log masuk

Mengapa ini berlaku?

Masalahnya terletak pada sintaks kaedah split(). Simbol paip, "|", mempunyai kepentingan istimewa dalam ungkapan biasa, di mana ia mewakili pengendali "ATAU". Untuk menggunakan simbol paip secara literal sebagai pembatas, ia mesti dilepaskan menggunakan garis miring ke belakang ().

Untuk meminda kod, seseorang boleh menggunakan pendekatan berikut:

// Option 1: Escaping the pipe symbol
String[] result = test.split("\|");
Salin selepas log masuk
// Option 2: Utilizing Pattern.quote()
import java.util.regex.Pattern;
String[] result = test.split(Pattern.quote("|"));
Salin selepas log masuk

Dengan melepaskan simbol paip, anda menekan status istimewanya dalam ungkapan biasa, membolehkan ia ditafsirkan sebagai pembatas literal.

Atas ialah kandungan terperinci Mengapa Kaedah `split()` Java Gagal Apabila Memisahkan Rentetan dengan '|' dan Bagaimana Saya Boleh Membetulkannya?. 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