Rumah > Java > javaTutorial > Bagaimana untuk Tokenize Strings dengan Spaces, Tidak Termasuk Substrings Dipetik dalam Java?

Bagaimana untuk Tokenize Strings dengan Spaces, Tidak Termasuk Substrings Dipetik dalam Java?

Mary-Kate Olsen
Lepaskan: 2024-11-20 15:01:17
asal
566 orang telah melayarinya

How to Tokenize Strings with Spaces, Excluding Quoted Substrings in Java?

Tokenizing Rentetan dengan Ruang, Tidak Termasuk Subrentetan Dipetik dalam Java

Memisahkan rentetan berdasarkan ruang boleh menjadi mudah, tetapi bagaimana jika bahagian tertentu rentetan dipetik dan harus dianggap sebagai token tunggal? Di Java, anda boleh mencapai pemisahan bernuansa ini menggunakan ungkapan biasa.

Untuk mengendalikan senario ini, pendekatan berikut boleh digunakan:

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

Ungkapan biasa yang digunakan di sini membahagi rentetan dengan berkesan kepada token berdasarkan ruang putih, tetapi ia juga mengenal pasti subrentetan yang dipetik. Dengan menangkap subrentetan yang dipetik ini sebagai token tunggal, kami dapat memastikan bahawa frasa seperti "Selamat datang ke india" kekal utuh.

Ungkapan biasa boleh difahami seperti berikut:

  • [^" ]: Padan dengan mana-mana aksara yang bukan petikan berganda (").
  • S*: Padan dengan sifar atau lebih aksara bukan ruang putih.
  • |: Simbol paip menunjukkan keadaan ATAU.
  • ". ?": Memadankan petikan berganda, diikuti dengan satu atau lebih aksara (termasuk ruang putih), diikuti dengan petikan berganda.
  • s*: Padan dengan sifar atau lebih aksara ruang kosong.

Ini membolehkan kami untuk mengendalikan rentetan kompleks dengan frasa yang dipetik dengan berkesan. Senarai yang terhasil mengandungi token yang mewakili perkataan individu atau frasa yang dipetik, seperti yang diperlukan dalam contoh yang disediakan.

Atas ialah kandungan terperinci Bagaimana untuk Tokenize Strings dengan Spaces, Tidak Termasuk Substrings Dipetik dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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