Rumah  >  Artikel  >  Java  >  Mengapa Saya Perlu Melarikan Diri daripada Watak Paip dalam Kaedah String.split Java?

Mengapa Saya Perlu Melarikan Diri daripada Watak Paip dalam Kaedah String.split Java?

Patricia Arquette
Patricia Arquetteasal
2024-11-06 06:28:02629semak imbas

Why Should I Escape the Pipe Character in Java's String.split Method?

Melepaskan Pembatas Paip dalam String.split

Apabila menggunakan kaedah belah pada rentetan, adalah penting untuk memahami kepentingan melepaskan aksara tertentu . Khususnya, watak paip (|) bertindak sebagai pembatas khas, dan kehadirannya tanpa melarikan diri boleh membawa kepada hasil yang tidak dijangka.

Mengapa Escape the Pipe?

The kaedah split mengharapkan hujah ungkapan biasa, di mana setiap aksara mewakili peraturan padanan corak tertentu. Apabila paip unescaped digunakan, ia ditafsirkan sebagai operator OR logik dalam regex. Ini bermakna ia mewakili corak yang sepadan sama ada rentetan kosong atau rentetan kosong yang lain, yang bukan gelagat yang dimaksudkan.

Contoh

Pertimbangkan coretan kod berikut, yang cuba menghuraikan baris dengan nilai yang dibatasi paip:

private ArrayList<String> parseLine(String line) {
    ArrayList<String> list = new ArrayList<String>();
    String[] list_str = line.split("|");
    for(String s:list_str) {
        list.add(s);
        System.out.print(s+ "|");
    }
    return list;
}

Tanpa melarikan diri daripada paip, kod ini akan memadankan dengan salah setiap aksara dalam rentetan sebagai pembatas, menyebabkan tatasusunan kosong.

Dengan melepaskan paip menggunakan "|", kaedah pemisahan kini memisahkan nilai dalam baris dengan betul .

Atas ialah kandungan terperinci Mengapa Saya Perlu Melarikan Diri daripada Watak Paip dalam Kaedah String.split Java?. 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