Qt QString maxsplit 参数

lie*_*ewl 2 qstring qt

split()Python 字符串有一个可以接受参数的函数maxsplit(来自Python 文档):

如果给出 maxsplit,则最多完成 maxsplit 分割(因此,列表最多有 maxsplit+1 个元素)。如果未指定 maxsplit 或为 -1,则拆分数量没有限制(进行所有可能的拆分)。

QString 可以做到这一点吗?我查看了文档,没有重载需要相当于参数的split()整数。maxsplit

Vis*_*nda 5

看起来并非如此,尽管实施起来似乎很简单 -

QString str("How are all of you doing");
QStringList list = str.split(' ').mid(0, maxSplit);
QString remainingStr = str.section(' ', maxSplit);
list << remainingStr;
Run Code Online (Sandbox Code Playgroud)

或者,如果您想要更高的性能,您可以从 QString::split 复制代码,并添加额外的功能。代码位于qtbase/src/corelib/tools/qstring.cpp。你只需要&& list.size() <= maxSplit在 while 循环中添加即可。