西安烽盈网站建设,有人上相亲网站做传销燕窝,扬州网络品牌营销推广,做网站网站赚qt-C笔记之QStringList —— 杭州 2023-12-03
code review! 文章目录 qt-C笔记之QStringList1.1.《Qt官方文档》第一部分翻译#xff1a;继承自QList\QString\-初始化-添加字符串1.2.迭代字符串1.3.join()和split()1.4.filter()1.5.lastIndexOf()1.6.indexOf()1.7.…qt-C笔记之QStringList —— 杭州 2023-12-03
code review! 文章目录 qt-C笔记之QStringList1.1.《Qt官方文档》第一部分翻译继承自QList\QString\-初始化-添加字符串1.2.迭代字符串1.3.join()和split()1.4.filter()1.5.lastIndexOf()1.6.indexOf()1.7.replaceInStrings()以及比较QString 类则提供了replace()函数1.8.一些常用方法和操作1.9.QStringList和QListQString关系2.0.QStringList的append(),append(),operator()2.1.QStringLisPublic Functions2.2.QStringLisList of all members, including inherited members2.3.Classes for String Data(Qt中字符串数据的类) **《Qt官方文档》链接** https://doc.qt.io/qt-6/qstringlist.html
1.1.《Qt官方文档》第一部分翻译继承自QListQString-初始化-添加字符串
原文 翻译 1.2.迭代字符串
在Qt中遍历 QStringList 可以使用迭代器、foreach 循环或基于索引的循环。下面是这些遍历方法的详细说明 使用迭代器 QStringList stringList;
stringList Apple Banana Cherry;QStringList::iterator it;
for (it stringList.begin(); it ! stringList.end(); it) {qDebug() *it;
}
使用迭代器可遍历 QStringList通过 begin() 获取迭代器的起始位置通过 end() 获取迭代器的结束位置。在循环中使用 *it 来访问迭代器当前指向的元素。 使用 foreach 循环 QStringList stringList;
stringList Apple Banana Cherry;foreach (const QString str, stringList) {qDebug() str;
}
foreach 循环提供了一种简洁的方式来遍历 QStringList。在每次迭代中变量 str 将依次引用列表中的元素。 基于索引的循环 QStringList stringList;
stringList Apple Banana Cherry;for (int i 0; i stringList.size(); i) {qDebug() stringList.at(i);
}基于索引的循环遍历 QStringList 可以使用下标运算符 [] 或 at() 函数来访问列表中的元素。以下是基于索引的循环遍历的详细说明 QStringList stringList;
stringList Apple Banana Cherry;for (int i 0; i stringList.size(); i) {QString str stringList[i]; // 或者使用 stringList.at(i)qDebug() str;
}在上述示例中我们创建了一个 QStringList 对象 stringList其中包含多个字符串元素。然后我们使用基于索引的循环遍历列表。在每次迭代中我们使用下标运算符 [] 或 at() 函数来获取列表中的元素并将其存储在 str 变量中。最后我们输出 str 的值。 需要注意的是索引从 0 开始因此循环条件是 i stringList.size()。我们使用 size() 函数获取列表的大小。
1.3.join()和split() 1.4.filter() 以下是一个完整的示例代码
#include QtCoreint main() {QStringList fonts;fonts Arial Courier New Times New Roman Fixedsys;QStringList monospacedFonts fonts.filter(QRegularExpression(Courier|Fixed));qDebug() Monospaced Fonts:;for (const QString font : monospacedFonts) {qDebug() font;}return 0;
}在这个示例中我们先创建了一个 QStringList 对象 fonts并向其添加了几个字体名称。然后使用 filter() 函数结合正则表达式 Courier|Fixed 筛选出包含 “Courier” 或 “Fixed” 的字体名称并将结果存储在 monospacedFonts 中。
最后通过遍历 monospacedFonts将筛选结果输出到调试输出中。
运行这段代码你将得到如下输出结果
Monospaced Fonts:
Courier New
Fixedsys输出结果显示了满足条件的字体名称即 “Courier New” 和 “Fixedsys”。这表明代码成功地筛选出了包含 “Courier” 或 “Fixed” 的字体名称。
1.5.lastIndexOf()
QStringList 类提供了 lastIndexOf() 函数用于查找指定字符串在列表中最后出现的位置索引。
函数原型如下
int lastIndexOf(const QString value, int from -1) const;参数说明
value要查找的字符串。from可选参数指定开始搜索的索引位置默认值为 -1表示从列表的末尾开始搜索。
函数返回值
如果找到了指定的字符串则返回最后一个匹配项的索引值。如果没有找到匹配项则返回 -1。
以下是一个示例演示如何使用 lastIndexOf() 函数查找字符串在 QStringList 中最后出现的位置
#include QtCoreint main() {QStringList stringList;stringList Apple Banana Cherry Banana Apple;int lastIndex stringList.lastIndexOf(Banana);if (lastIndex ! -1) {qDebug() Last occurrence of Banana found at index: lastIndex;} else {qDebug() No occurrence of Banana found in the list.;}return 0;
}在上述示例中我们创建了一个 QStringList 对象 stringList其中包含多个字符串元素。然后我们使用 lastIndexOf() 函数查找字符串 “Banana” 在列表中最后出现的位置并将结果存储在 lastIndex 中。
最后我们根据 lastIndex 的值输出相应的信息。
运行这段代码你将得到如下输出结果
Last occurrence of Banana found at index: 3输出结果表明字符串 “Banana” 在列表中最后出现的位置是索引 3。
1.6.indexOf()
QStringList 类提供了 indexOf() 函数用于查找指定字符串在列表中第一次出现的位置索引。
函数原型如下
int indexOf(const QString value, int from 0) const;参数说明
value要查找的字符串。from可选参数指定开始搜索的索引位置默认值为 0表示从列表的开头开始搜索。
函数返回值
如果找到了指定的字符串则返回第一个匹配项的索引值。如果没有找到匹配项则返回 -1。
以下是一个示例演示如何使用 indexOf() 函数查找字符串在 QStringList 中第一次出现的位置
#include QtCoreint main() {QStringList stringList;stringList Apple Banana Cherry Banana Apple;int firstIndex stringList.indexOf(Banana);if (firstIndex ! -1) {qDebug() First occurrence of Banana found at index: firstIndex;} else {qDebug() No occurrence of Banana found in the list.;}return 0;
}在上述示例中我们创建了一个 QStringList 对象 stringList其中包含多个字符串元素。然后我们使用 indexOf() 函数查找字符串 “Banana” 在列表中第一次出现的位置并将结果存储在 firstIndex 中。
最后我们根据 firstIndex 的值输出相应的信息。
运行这段代码你将得到如下输出结果
First occurrence of Banana found at index: 1输出结果表明字符串 “Banana” 在列表中第一次出现的位置是索引 1。
1.7.replaceInStrings()以及比较QString 类则提供了replace()函数 QStringList 类提供了一个成员函数 replaceInStrings()用于在列表中的每个字符串中进行替换操作。而 QString 类则提供了 replace() 函数用于执行单个字符串的替换操作。 QStringList::replaceInStrings(const QString before, const QString after) 此函数用于在列表中的每个字符串中将 before 替换为 after。它会修改原始的 QStringList 对象将所有匹配的字符串进行替换。示例 QStringList stringList;
stringList apple banana cherry;stringList.replaceInStrings(a, X);// 输出结果: Xpple, bXnXnX, cherry
qDebug() stringList;QString::replace(const QString before, const QString after) 此函数用于在单个字符串中将 before 替换为 after。它返回一个新的字符串不会修改原始的 QString 对象。示例 QString str apple banana cherry;
QString replacedStr str.replace(a, X);// 输出结果: Xpple bXnXnX cherry
qDebug() replacedStr;这两个函数都能执行字符串的替换操作但 replaceInStrings() 是在 QStringList 对象的每个字符串中进行替换而 replace() 是在单个字符串中进行替换。你可以根据自己的需求选择使用哪个函数。
1.8.一些常用方法和操作
QStringList是Qt框架中的一个类用于存储字符串列表。它提供了一组方法和操作方便对字符串列表进行处理、访问和修改。
以下是QStringList类的一些常用方法和操作的详细解释
1. 构造函数和赋值操作符
QStringList()默认构造函数创建一个空的字符串列表。QStringList(const QStringList other)拷贝构造函数使用另一个字符串列表初始化当前列表。QStringList operator(const QStringList other)赋值操作符将另一个字符串列表赋值给当前列表。
2. 添加和移除元素
void append(const QString str)向列表末尾添加一个字符串。void prepend(const QString str)向列表开头添加一个字符串。void insert(int i, const QString str)在指定位置插入一个字符串。void removeAt(int i)移除指定位置的字符串。void removeOne(const QString str)移除第一个匹配给定字符串的元素。void removeAll(const QString str)移除所有匹配给定字符串的元素。void clear()清空列表移除所有元素。
3. 获取和修改元素
int size() const返回列表中元素的数量。bool isEmpty() const检查列表是否为空。QString at(int i) const返回指定位置的字符串。QString operator[](int i)访问指定位置的字符串可用于修改该元素。const QString operator[](int i) const以只读方式访问指定位置的字符串。QStringList mid(int pos, int length -1) const返回从指定位置开始的指定长度子列表。QStringList replace(int i, const QString str)将指定位置的字符串替换为给定字符串。QStringList replace(const QString before, const QString after)将所有匹配给定字符串的元素替换为新的字符串。
4. 其他常用方法
bool contains(const QString str) const检查列表中是否包含给定字符串。int indexOf(const QString str, int from 0) const返回第一个匹配给定字符串的位置。int lastIndexOf(const QString str, int from -1) const返回最后一个匹配给定字符串的位置。QString join(const QString separator) const将列表中的所有元素连接为一个字符串使用给定的分隔符分隔。
QStringList提供了方便的方法来处理字符串列表如添加、移除、访问和修改元素等。它在Qt中广泛用于处理和操作字符串集合的场景例如配置文件解析、日志记录、命令行参数处理等。
1.9.QStringList和QList关系
QStringList 和 QListQString 都是Qt中用于存储字符串的容器类但它们在实现和使用上有一些区别。 类型差异 QStringList 是一个专门用于存储字符串的类是 QString 类的派生类可以直接使用 QString 的成员函数。QListQString 是一个通用的列表类可以存储任意类型的元素其中的元素类型指定为 QString。 头文件和命名空间 QStringList 类定义在 QStringList 头文件中属于 Qt 命名空间。QListQString 类定义在 QList 头文件中同样属于 Qt 命名空间。 成员函数和使用 QStringList 类提供了一些特定于字符串列表的成员函数如 join()、split()、contains() 等。QListQString 类提供了通用的列表操作函数如 append()、insert()、remove() 等。由于 QStringList 是 QString 的派生类可以直接使用 QString 类的成员函数。 隐式转换 QStringList 对象可以隐式转换为 QListQString 对象即可以将 QStringList 类型的对象赋值给 QListQString 类型的变量。QListQString 对象不能隐式转换为 QStringList 对象。
在实践中QStringList 通常用于处理字符串的特定需求如字符串的拆分和合并而 QListQString 则更通用适用于任意类型的元素的存储和操作。如果你只需要存储字符串推荐使用 QStringList如果需要存储其他类型的元素可以使用 QList。
2.0.QStringList的append(),append(),operator()
在Qt中QStringList 提供了几种方法来添加和组合字符串
append(const QString str)该函数用于将指定的字符串添加到 QStringList 的末尾。例如
QStringList stringList;
stringList.append(Apple);
stringList.append(Banana);在上述示例中我们使用 append() 函数将字符串 “Apple” 和 “Banana” 添加到 stringList 中。
operator(const QString str)该运算符重载函数也可以用于将字符串添加到 QStringList 的末尾。例如
QStringList stringList;
stringList Apple Banana;这个运算符的使用方式类似于使用 append() 函数。
operator(const QStringList other)该运算符重载函数用于将两个 QStringList 进行连接。它会返回一个新的 QStringList包含两个操作数的所有元素。例如
QStringList list1;
list1 Apple Banana;QStringList list2;
list2 Cherry Durian;QStringList combinedList list1 list2;在上述示例中我们使用 operator() 运算符将 list1 和 list2 进行连接得到一个新的 combinedList其中包含所有元素。
需要注意的是operator() 运算符返回的是一个新的 QStringList原始的操作数 list1 和 list2 不会被修改。
这些函数和运算符提供了不同的方式来添加和组合字符串可以根据具体的需求选择使用哪种方式。
2.1.QStringLisPublic Functions
QStringList(const QString str)
QStringList(const QListQString other)
QStringList(QListQString other)
bool contains(const QString str, Qt::CaseSensitivity cs Qt::CaseSensitive) const
bool contains(QLatin1StringView str, Qt::CaseSensitivity cs Qt::CaseSensitive) const
bool contains(QStringView str, Qt::CaseSensitivity cs Qt::CaseSensitive) const
QStringList filter(const QString str, Qt::CaseSensitivity cs Qt::CaseSensitive) const
QStringList filter(QStringView str, Qt::CaseSensitivity cs Qt::CaseSensitive) const
QStringList filter(const QRegularExpression re) const
qsizetype indexOf(const QRegularExpression re, qsizetype from 0) const
QString join(const QString separator) const
QString join(QStringView separator) const
QString join(QLatin1StringView separator) const
QString join(QChar separator) const
qsizetype lastIndexOf(const QRegularExpression re, qsizetype from -1) const
qsizetype removeDuplicates()
QStringList replaceInStrings(const QString before, const QString after, Qt::CaseSensitivity cs Qt::CaseSensitive)
QStringList replaceInStrings(QStringView before, QStringView after, Qt::CaseSensitivity cs Qt::CaseSensitive)
QStringList replaceInStrings(const QString before, QStringView after, Qt::CaseSensitivity cs Qt::CaseSensitive)
QStringList replaceInStrings(QStringView before, const QString after, Qt::CaseSensitivity cs Qt::CaseSensitive)
QStringList replaceInStrings(const QRegularExpression re, const QString after)
void sort(Qt::CaseSensitivity cs Qt::CaseSensitive)
QStringList operator(const QStringList other) const
QStringList operator(const QString str)
QStringList operator(const QStringList other)
QStringList operator(const QListQString other)
QStringList operator(const QListQString other)
QStringList operator(QListQString other)2.2.QStringLisList of all members, including inherited members
class const_iterator
class iterator
ConstIterator
Iterator
const_pointer
const_reference
const_reverse_iterator
difference_type
parameter_type
pointer
reference
reverse_iterator
rvalue_ref
size_type
value_type
QStringList(const QString )
QStringList(const QListQString )
QStringList(QListQString )
append(QList::parameter_type)
append(QList::rvalue_ref)
append(const QListT )
append(QListT )
assign(qsizetype, QList::parameter_type) : QListT
assign(InputIterator, InputIterator) : QListT
assign(std::initializer_listT) : QListT
at(qsizetype) const : QList::const_reference
back() : QList::reference
back() const : QList::const_reference
begin() : QList::iterator
begin() const : QList::const_iterator
capacity() const : qsizetype
cbegin() const : QList::const_iterator
cend() const : QList::const_iterator
clear()
constBegin() const : QList::const_iterator
constData() const : QList::const_pointer
constEnd() const : QList::const_iterator
constFirst() const : const T
constLast() const : const T
contains(const QString , Qt::CaseSensitivity) const : bool
contains(const AT ) const : bool
contains(QLatin1StringView, Qt::CaseSensitivity) const : bool
contains(QStringView, Qt::CaseSensitivity) const : bool
count(const AT ) const : qsizetype
count() const : qsizetype
crbegin() const : QList::const_reverse_iterator
crend() const : QList::const_reverse_iterator
data() : QList::pointer
data() const : QList::const_pointer
emplace(qsizetype, Args ...) : QList::iterator
emplace(QList::const_iterator, Args ...) : QList::iterator
emplaceBack(Args ...) : QList::reference
emplace_back(Args ...) : QList::reference
empty() const : bool
end() : QList::iterator
end() const : QList::const_iterator
endsWith(QList::parameter_type) const : bool
erase(QList::const_iterator) : QList::iterator
erase(QList::const_iterator, QList::const_iterator) : QList::iterator
fill(QList::parameter_type, qsizetype) : QListT
filter(const QString , Qt::CaseSensitivity) const : QStringList
filter(QStringView, Qt::CaseSensitivity) const : QStringList
filter(const QRegularExpression ) const : QStringList
first() : T
first() const : const T
first(qsizetype) const : QListT
front() : QList::reference
front() const : QList::const_reference
indexOf(const AT , qsizetype) const : qsizetype
indexOf(const QRegularExpression , qsizetype) const : qsizetype
insert(qsizetype, QList::parameter_type) : QList::iterator
insert(qsizetype, qsizetype, QList::parameter_type) : QList::iterator
insert(QList::const_iterator, QList::parameter_type) : QList::iterator
insert(QList::const_iterator, qsizetype, QList::parameter_type) : QList::iterator
insert(QList::const_iterator, QList::rvalue_ref) : QList::iterator
insert(qsizetype, QList::rvalue_ref) : QList::iterator
isEmpty() const : bool
join(const QString ) const : QString
join(QStringView) const : QString
join(QLatin1StringView) const : QString
join(QChar) const : QString
last() : T
last() const : const T
last(qsizetype) const : QListT
lastIndexOf(const AT , qsizetype) const : qsizetype
lastIndexOf(const QRegularExpression , qsizetype) const : qsizetype
length() const : qsizetype
mid(qsizetype, qsizetype) const : QListT
move(qsizetype, qsizetype)
pop_back()
pop_front()
prepend(QList::rvalue_ref)
prepend(QList::parameter_type)
push_back(QList::parameter_type)
push_back(QList::rvalue_ref)
push_front(QList::rvalue_ref)
push_front(QList::parameter_type)
rbegin() : QList::reverse_iterator
rbegin() const : QList::const_reverse_iterator
remove(qsizetype, qsizetype)
removeAll(const AT ) : qsizetype
removeAt(qsizetype)
removeDuplicates() : qsizetype
removeFirst()
removeIf(Predicate) : qsizetype
removeLast()
removeOne(const AT ) : bool
rend() : QList::reverse_iterator
rend() const : QList::const_reverse_iterator
replace(qsizetype, QList::parameter_type)
replace(qsizetype, QList::rvalue_ref)
replaceInStrings(const QString , const QString , Qt::CaseSensitivity) : QStringList
replaceInStrings(QStringView, QStringView, Qt::CaseSensitivity) : QStringList
replaceInStrings(const QString , QStringView, Qt::CaseSensitivity) : QStringList
replaceInStrings(QStringView, const QString , Qt::CaseSensitivity) : QStringList
replaceInStrings(const QRegularExpression , const QString ) : QStringList
reserve(qsizetype)
resize(qsizetype)
resize(qsizetype, QList::parameter_type)
shrink_to_fit()
size() const : qsizetype
sliced(qsizetype, qsizetype) const : QListT
sliced(qsizetype) const : QListT
sort(Qt::CaseSensitivity)
squeeze()
startsWith(QList::parameter_type) const : bool
swap(QListT )
swapItemsAt(qsizetype, qsizetype)
takeAt(qsizetype) : T
takeFirst() : QList::value_type
takeLast() : QList::value_type
value(qsizetype) const : T
value(qsizetype, QList::parameter_type) const : T
operator!(const QListT ) const : bool
operator(const QStringList ) const : QStringList
operator(const QListT ) const : QListT
operator(const QListT ) : QListT
operator(QListT ) const : QListT
operator(QListT ) : QListT
operator(const QListT ) : QListT
operator(QListT ) : QListT
operator(QList::parameter_type) : QListT
operator(QList::rvalue_ref) : QListT
operator(const QListT ) const : bool
operator(const QString ) : QStringList
operator(QList::parameter_type) : QListT
operator(const QStringList ) : QStringList
operator(const QListT ) : QListT
operator(const QListQString ) : QStringList
operator(QListT ) : QListT
operator(QList::rvalue_ref) : QListT
operator(const QListT ) const : bool
operator(const QListQString ) : QStringList
operator(std::initializer_listT) : QListT
operator(QListQString ) : QStringList
operator(const QListT ) : QListT
operator(QListT ) : QListT
operator(const QListT ) const : bool
operator(const QListT ) const : bool
operator(const QListT ) const : bool
operator[](qsizetype) : QList::reference
operator[](qsizetype) const : QList::const_reference2.3.Classes for String Data(Qt中字符串数据的类)