Qt - klasa QStringList do przechowywania ciągów tekstowych
Stronę tą wyświetlono już: 3033 razy
Biblioteka Qt udostępnia szereg klas umożliwiających przechowywanie wielu elementów tego samego typu. Jedną z takich klas jest klasa QStringList, która pozwala na przechowywanie elementów typu QString. Obiekt klasy QStringList jest tworzony, gdy tekst zawarty w klasie QString zostanie poddany parsowaniu przy użyciu metody split, czego przykładem jest poniższy kod:
Wynik działania powyższego kodu:
"100;200;300;400;500" ("100", "200", "300", "400", "500")
Dodawanie elementów do obiektu klasy QStringList
Dodanie kolejnych elementów można przeprowadzić na kilka różnych sposobów, jednym z nich jest przypisanie w stylu C++ 11:
Można również dodawać na różne sposoby kolejne elementy do takiej listy:
Wynik działania powyższego kodu:
("string1", "string2") ("string1", "string2", "string3", "string4", "string5") ("string6", "string1", "string2", "string3", "string4", "string5") ("string6", "string1", "string2", "string3", "string4", "string5", "string7", "string9") ("string6", "string1", "string2", "string3", "string4", "string5", "string7", "string9", "string10", "string11", "string12") ("string14", "string6", "string1", "string2", "string3", "string4", "string5", "string7", "string9", "string10", "string11", "string12", "string13") ("string14", "string6", "string1", "string15", "string2", "string3", "string4", "string5", "string7", "string9", "string10", "string11", "string12", "string13")
Pozyskiwanie informacji o liczbie elementów zawartych w liście
Istnieją dwie metody length i size, które zwracają liczbę elementów zawartych w obiekcie klasy QStringList.
Iterowanie po elementach listy
Iterowanie można wykonać na kilka sposobów. Pierwszy z nich wykorzystuje indeksowanie:
Można też iterować wykorzystując wskaźniki:
Jeżeli dodana została obsługa standardu C++ 11 można sobie ułatwić życie iterując w następujący sposób:
I w końcu można iterować po elementach listy w stylu Javy:
Łączenie elementów listy
Klasa QStringList dysponuje metodą join umożliwiającą połączenie elementów w jeden ciąg znaków z wykorzystaniem podanego separatora. Oto przykład:
Wynik działania powyższego kodu:
"string1[separator]string2[separator]string3" "string1;string2;string3"
Sprawdzanie, czy lista zawiera element z podanym tekstem
Za pomocą metody contains można stwierdzić w sposób jednoznaczny, czy lista zawiera element z podanym ciągiem znaków. Oto przykład:
Wynik działania powyższego kodu:
Polska jest na liście zaproszonych Niemcy nie są na liście zaproszonych
Domyślnie przeszukiwanie jest nieczułe na wielkości liter, jeżeli jednak zachodzi potrzeba przeszukiwania z uwzględnieniem wielkości liter to istnieje taka możliwość:
Znajdowanie indeksu elementu zawierającego podany ciąg znaków lub dopasowanie wyrażenia regularnego
Można również za pomocą metody indexOf lub lastIndexOf znaleźć pierwszą lub ostatnią pozycję szukanego dopasowania wyrażenia regularnego. Oto przykład:
Wynik działania powyższego kodu:
"Polska Pl"
Wyciąganie listy elementów spełniających określone warunki dopasowania do ciągu znaków lub wzorca
Lista QStringList umożliwia filtrowanie elementów w niej zawartych za pomocą metody filter w następujący przebiegły sposób:
Wynik działania powyższego kodu:
("00-000") ("00-009", "01-009", "02-009", "03-009", "04-009", "05-009", "06-009", "07-009", "08-009", "09-009", "10-009", "11-009", "12-009", "13-009", "14-009", "15-009", "16-009", "17-009", "18-009", "19-009", "20-009", "21-009", "22-009", "23-009", "24-009", "25-009", "26-009", "27-009", "28-009", "29-009", "30-009", "31-009", "32-009", "33-009", "34-009", "35-009", "36-009", "37-009", "38-009", "39-009", "40-009", "41-009", "42-009", "43-009", "44-009", "45-009", "46-009", "47-009", "48-009", "49-009", "50-009", "51-009", "52-009", "53-009", "54-009", "55-009", "56-009", "57-009", "58-009", "59-009", "60-009", "61-009", "62-009", "63-009", "64-009", "65-009", "66-009", "67-009", "68-009", "69-009", "70-009", "71-009", "72-009", "73-009", "74-009", "75-009", "76-009", "77-009", "78-009", "79-009", "80-009", "81-009", "82-009", "83-009", "84-009", "85-009", "86-009", "87-009", "88-009", "89-009", "90-009", "91-009", "92-009", "93-009", "94-009", "95-009", "96-009", "97-009", "98-009", "99-009")
Usuwanie elementów z listy
Istnieje szereg metod, które umożliwiają usuwanie elementów z listy QStringList. Oto przykład ich użycia:
Wynik działania powyższego kodu:
("100", "200", "300", "400", "500", "600", "600", "700", "100") ("100", "200", "300", "400", "500", "700", "100") ("100", "200", "300", "400", "500", "700") ("200", "300", "400", "500", "700") ("200", "300", "400", "500") ("200", "300", "500")