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));
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:
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!