Rumah >Java >javaTutorial >Bagaimana untuk Memisahkan Rentetan pada Ruang Semasa Mengekalkan Subrentetan Dipetik di Jawa?

Bagaimana untuk Memisahkan Rentetan pada Ruang Semasa Mengekalkan Subrentetan Dipetik di Jawa?

Susan Sarandon
Susan Sarandonasal
2024-11-11 13:49:021032semak imbas

How to Split a String on Spaces While Preserving Quoted Substrings in Java?

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:

  • Corak disusun dan digunakan untuk memadankan token dalam rentetan.
  • Token yang dipadankan ditambahkan pada senarai tatasusunan.
  • Pilihan penyingkiran petikan di sekeliling boleh dicapai dengan menggunakan .replace(""", "") selepas menambah token pada senarai.

Output:

[Location, "Welcome  to india", Bangalore, Channai, "IT city", Mysore]

  1. "

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!

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