Rumah >Java >javaTutorial >Bagaimana untuk Memisahkan Rentetan pada Ruang Semasa Mengekalkan Subrentetan Dipetik di Jawa?
Memisahkan Rentetan pada Ruang, Mengekalkan Subrentetan Dipetik dalam Java
Memisahkan rentetan pada ruang boleh menjadi mudah, tetapi ia menjadi lebih kompleks apabila dipetik subrentetan perlu dianggap sebagai token tunggal. Mari kita terokai cara untuk mencapai ini dalam Java.
Pernyataan Masalah:
Bagaimanakah kita boleh memisahkan rentetan berikut pada ruang, memandangkan subrentetan yang dipetik kekal sebagai satu unit?
Location "Welcome to india" Bangalore Channai "IT city" Mysore
Output yang dikehendaki hendaklah disimpan dalam senarai tatasusunan, mengekalkan petikan subrentetan:
[Location, "Welcome to india", Bangalore, Channai, "IT city", Mysore]
Penyelesaian:
Dengan menggunakan ungkapan biasa, kita boleh menentukan corak yang sepadan dengan subrentetan yang sama ada aksara bukan ruang (" 1S") atau subrentetan yang dipetik (""(. ?)""). Corak seterusnya membenarkan aksara ruang kosong pilihan ("s") mengikuti padanan.
String str = "Location \"Welcome to india\" Bangalore " + "Channai \"IT city\" Mysore"; List<String> list = new ArrayList<>(); Matcher m = Pattern.compile("([^\"]\S*|\".+?\")\s*").matcher(str); while (m.find()) list.add(m.group(1)); // Add .replace("\"", "") to remove surrounding quotes. System.out.println(list);
Dalam penyelesaian ini:
Output:
[Location, "Welcome to india", Bangalore, Channai, "IT city", Mysore]
Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Rentetan pada Ruang Semasa Mengekalkan Subrentetan Dipetik di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!