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!