QString::split

The same is string splitting. The difference between split() and section() is that the former returns the split content as a list.

There are multiple overloaded forms of split().

QStringList QString::split(QChar sep, QString::SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Parameter 3 sets whether it is case sensitive.

Parameter 2 configures how to handle empty strings:

  • QString::KeepEmptyParts keep empty string
  • QString::SkipEmptyParts does not retain empty strings
#define debug qDebug()<<
int main(int argc, char *argv[])
{
    QString str = "a,,b,c";
    debug str.split(',');
    debug str.split(',',QString::SkipEmptyParts);
}

If there is no matching delimiter in the string, the string itself is added to the list:

QString QStringList::join() is the reverse operation of split, which merges the list into a QString.
Other overloaded versions:

  • QStringList QString::split(const QString &sep, QString::SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
  • QStringList QString::split(const QRegExp &rx, QString::SplitBehavior behavior = KeepEmptyParts) const
  • QStringList QString::split(const QRegularExpression &re, QString::SplitBehavior behavior = KeepEmptyParts) const

Each overloaded version of split() has a corresponding splitRef() function, which returns the reference QStringRef of the split substring:

  • QVector<QStringRef> QString::splitRef(QChar sep, QString::SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
  • QVector<QStringRef> QString::splitRef(const QString &sep, QString::SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
  • QVector<QStringRef> QString::splitRef(const QRegExp &rx, QString::SplitBehavior behavior = KeepEmptyParts) const
  • QVector<QStringRef> QString::splitRef(const QRegularExpression &re, QString::SplitBehavior behavior = KeepEmptyParts) const

QStringRef only contains a reference to QString and does not copy QString. For efficiency, you should try to use splitRef instead of split()

QStringRef

Guess you like

Origin blog.csdn.net/kenfan1647/article/details/113919709