0. 实例化方式
QStringList fonts = { "Arial", "Helvetica", "Times" };
1. 三种遍历方式
QStringList fonts = { "Arial", "Helvetica", "Times" };// 类STL迭代器for(auto f: fonts){qDebug() << f;}// 索引定位for(int i = 0; i < fonts.size(); i++){qDebug() << fonts[i];}// 类java的迭代器QStringListIterator javaStyleIterator(fonts);while (javaStyleIterator.hasNext())qDebug() << javaStyleIterator.next() << Qt::endl;
2.添加方式
// 使用重载运算符 <<QStringList fonts;fonts << "Arial"<< "Helvetica"<< "Times";// 使用appendfonts.append("Arial");// 使用insert,fonts.insert(fonts.size(), "hello");// 末尾添加fonts.insert(0, "hello"); //开头添加// 使用+=fonts += "Hei";
3. 和QString相互转换
QString str = fonts.join(", ");// str == "Arial, Helvetica, Times, Courier"
QStringList list;list = str.split(',');// list: ["Arial", "Helvetica", "Times", "Courier"]
4.查看是否包含某个值
if(fonts.contains("Arial")){qDebug() << "Yes";}
5.首尾的删除和添加,其实大部分qt的类都具有这个函数
fonts.pop_back();fonts.pop_front();fonts.push_back("hello");fonts.push_front("hello");
6.首尾的查看
QString str = fonts.first();QString str1 = fonts.back();
7. 返回某个值
int index = 1;QString str = fonts[index];QString str1 = fonts.at(index); // 使用at函数会稍微快一丢丢,因为[]其实是重载的运算符,底层调用的at,在极端追求性能的场景可以使用。
8.替换字符,QStringList支持普通字符替换和正则表达式
// 普通字符替换QStringList list;list << "alpha" << "beta" << "gamma" << "epsilon";list.replaceInStrings(QRegularExpression("^a"), "o");// list == ["olpha", "beta", "gamma", "epsilon"]
// 正则表达式QStringList list;list << "Bill Clinton" << "Murray, Bill";list.replaceInStrings(QRegularExpression("^(.*), (.*)$"), "\\2 \\1");// list == ["Bill Clinton", "Bill Murray"]