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
Lepaskan: 2024-11-11 13:49:02
asal
1058 orang telah melayarinya

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
Salin selepas log masuk

Output yang dikehendaki hendaklah disimpan dalam senarai tatasusunan, mengekalkan petikan subrentetan:

[Location, "Welcome to india", Bangalore, Channai, "IT city", Mysore]
Salin selepas log masuk

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);
Salin selepas log masuk

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]
Salin selepas log masuk

  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 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