Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Memisahkan Rentetan dengan Berbilang Pembatas?

Bagaimana untuk Memisahkan Rentetan dengan Berbilang Pembatas?

Linda Hamilton
Linda Hamiltonasal
2024-11-11 04:03:03424semak imbas

How to Split Strings with Multiple Delimiters?

Memisahkan Rentetan dengan Berbilang Pembatas [Pendua]

Dalam pemprosesan teks, keperluan sering timbul untuk membahagikan rentetan kepada perkataan atau token individu. Walaupun teknik pemisahan rentetan standard cemerlang dalam mengendalikan pembatas tunggal, tugas menjadi lebih mencabar dengan berbilang pembatas.

Masalah:

Memandangkan rentetan dan satu set pembatas, bagaimana bolehkah kita memisahkan rentetan kepada perkataan sambil mempertimbangkan semua pembatas yang ditentukan?

Penyelesaian:

Untuk memisahkan rentetan dengan berkesan menggunakan berbilang pembatas, kami memanfaatkan gabungan aliran rentetan dan operasi subrentetan. Berikut ialah versi ubah suai kod yang disediakan:

std::stringstream stringStream(inputString);
std::string line;
while(std::getline(stringStream, line)) {
    std::size_t prev = 0, pos;
    auto delimiters = " ';";  // Customize delimiter string here
    while ((pos = line.find_first_of(delimiters, prev)) != std::string::npos) {
        if (pos > prev)
            wordVector.push_back(line.substr(prev, pos-prev));
        prev = pos+1;
    }
    if (prev < line.length())
        wordVector.push_back(line.substr(prev, std::string::npos));
}

Penjelasan:

  • Kami mengulangi setiap baris dalam rentetan input menggunakan std::getline.
  • Untuk setiap baris, kami menggunakan std::find_first_of untuk mencari kedudukan pembatas pertama dalam baris.
  • Jika pembatas ditemui, kami menambah subrentetan antara pembatas sebelumnya dan pembatas semasa ke wordVector.
  • Kami kemudian mengemas kini sebelumnya untuk menunjuk kepada aksara selepas pembatas.
  • Selepas memproses keseluruhan baris, kami menambah subrentetan yang tinggal pada wordVector jika ia tidak kosong.

Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Rentetan dengan Berbilang Pembatas?. 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