Qt::endl;
while
(!
list.isEmpty())
delete
list.takeFirst();
1、模块和加载项
专门存储String的List。
QStringList
继承自
QList<QString>
,所有
QList
的方法都可以用于
QStringList
,不过
QStringList
还额外提供了一些更方便的方法。
1)初始化
QStringList fonts = { "Arial", "Helvetica", "Times" };
2)添加元素
insert()
、
append()
、
operator+=
() 、
operator<<
()
其中
operator<<
()最方便,且能一次加多个元素:
fonts << "Courier" << "Verdana";
//①索引,标准C++ for循环
for (int i = 0; i < fonts.size(); ++i)
cout << fonts.at(i).toLocal8Bit().constData() << Qt::endl;
//②Java样式迭代器
QStringListIterator javaStyleIterator(fonts);
while (javaStyleIterator.hasNext())
cout << javaStyleIterator.next().toLocal8Bit().constData() << Qt::endl;
//③STL样式迭代器
QStringList::const_iterator constIterator;
for (constIterator = fonts.constBegin(); constIterator != fonts.constEnd();
++constIterator)
cout << (*constIterator).toLocal8Bit().constData() << Qt::endl;
用指定分隔符连接:
join( seq )
QStringList fonts = ["Arial", "Helvetica", "Times", "Courier"]
QString str = fonts.join(", ");
// str == "Arial, Helvetica, Times, Courier"
首尾连接:
+
5)分割:
split( seq )
QStringList list;
list = str.split(',');
// list: ["Arial", "Helvetica", "Times", "Courier"]
6)排序:
sort()
7)筛选:
filter()
提取包含指定字串、指定正则表达式的子串
这三个函数功能分别是:是否包含指定字串、指定子串的第一个位置、逆向查看指定子串的第一个位置
对QStringList中的每个QString采用同一个替换方法,相当于对List中的所有QString调用
QString::replace
()方法:
QStringList files;
files << "$QTDIR/src/moc/moc.y"
<< "$QTDIR/src/moc/moc.l"
<< "$QTDIR/include/qconfig.h";
files.replaceInStrings("$QTDIR", "/usr/lib/qt");
// files: [ "/usr/lib/qt/src/moc/moc.y", ...]
1、模块和加载项
QStringList
(InputIterator
first
, InputIterator
last
)
用迭代器中[first , last)中的内容构造QStrintList,该InputIterator的内容必须是QString
QStringList
(std::initializer_list<QString>
args
)
这种构造方法说明可以用
QStringList sl = { "Apple" , "Banana" , "Orange" };
形式来构造QStringList
QStringList
(QList<QString>
other
)
用一个QList<QString>来构造QStringList
QStringList
(QString
str
)
构造只有单个QString元素str的QStringList
QStringList
()
构造空QStringList
filter
(QString
str
, Qt::CaseSensitivity
cs
= Qt::CaseSensitive)
filter
(QRegExp
rx
)
filter
(QRegularExpression r
e
)
筛选所有符合要求的子串构成新的QStringList,后两项说明可以用正则
indexOf
(QRegExp
rx
, int
from
= 0)
indexOf
(QRegularExpression
re
, int
from
= 0)
返回第一个符合正则的子串的位置
QString
join
(QString
separator
)
join
(QChar
separator
)
用指定分隔符连接QStringList中的所有QString
lastIndexOf
(QRegExp
rx
, int
from
= -1)
lastIndexOf
(QRegularExpression
re
, int
from
= -1)
逆向查找,返回第一个符合正则的子串的位置
removeDuplicates
()
移除所有List中所有相同的QString,只保留一个
QStringList &
replaceInStrings
(QString
before
, QString
after
, Qt::CaseSensitivity
cs
= Qt::CaseSensitive)
replaceInStrings
(QRegExp
rx
, const QString &
after
)
replaceInStrings
(QRegularExpression
re
, const QString &
after
)
用相同规则对List中所有QString进行替换
sort
(Qt::CaseSensitivity
cs
= Qt::CaseSensitive)