一、描述

QStringList 继承自 QList<QString>。 与 QList 一样,QStringList 也是隐式共享的。 它提供基于索引的快速访问以及快速插入和删除。将字符串列表作为值参数传递既快速又安全。

二、成员函数

1、bool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive)

如果列表包含字符串 str,则返回 true。

  • Qt::CaseInsensitive:不区分大小写。
  • Qt::CaseSensitive:区分大小写。

2、QStringList filter(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive)

返回包含子字符串 str 的所有字符串的列表。

     QStringList list;
     list << "Bill Murray" << "John Doe" << "Bill Clinton";

     QStringList result;
     result = list.filter("Bill");// result: ["Bill Murray", "Bill Clinton"]

等同于:

     QStringList result;
     foreach (const QString &str, list) {
         if (str.contains("Bill"))
             result += str;
     }

3、qsizetype indexOf(const QRegularExpression &re, qsizetype from = 0)

返回列表中 re 的第一个完全匹配的索引位置,从索引位置开始向前搜索。 如果没有匹配项,则返回 -1。

       qsizetype lastIndexOf(const QRegularExpression &re, qsizetype from = -1)

返回列表中 re 的最后一个完全匹配的索引位置,从索引位置开始向后搜索。 如果 from 是 -1(默认值),则搜索从最后一项开始。如果没有匹配项,则返回 -1。

4、QString join(QChar separator)

有多个参数类型不同的重载版本。

将所有字符串列表的字符串连接成一个字符串,每个元素由给定的分隔符(可以是空字符串)分隔。

5、qsizetype removeDuplicates() 【实用】

此函数从列表中删除重复的条目。条目不必排序。它们将保留原来的顺序。

返回已删除条目的数量。

6、QStringList & replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

      QStringList & replaceInStrings(const QRegularExpression &re, const QString &after)

返回一个字符串列表,其中每个字符串都将之前的文本替换为之后的文本。

     QStringList list;
     list << "alpha" << "beta" << "gamma" << "epsilon";
     list.replaceInStrings("a", "o"); // list == ["olpho", "beto", "gommo", "epsilon"]

     QStringList list;
     list << "alpha" << "beta" << "gamma" << "epsilon";
     list.replaceInStrings(QRegularExpression("^a"), "o"); // list == ["olpha", "beta", "gamma", "epsilon"]

7、void sort(Qt::CaseSensitivity cs = Qt::CaseSensitive)

按升序对字符串列表进行排序。

使用 STL 的 std::sort() 算法执行排序,该算法平均线性对数时间,即 O(n log n)。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐