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";
// 使用append
fonts.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"]