我想将字符串列表的每个项目分配给另一个字符串列表,例如:
stringlist_1 = ("k*k1*k2" , "s*s1*s2" , "b*b1*b2")
我想让他们像这样:
stringlist_2 = ("k","k","k2")
stringlist_3 = ("s","s1","s2")
等。
我该怎么做? 我托盘使用此代码
for (int i=0 ; i<2 ; i++)
{
QStringList d = stringlist_1.value(i).split("*");
qDebug()<< d ;
}
我使用for
循环,因为我的列表非常大,但是
问题是将主列表的所有字符串存储在相同的字符串列表中(d)。
如何让fo
r循环更改在每个循环中分配给它的字符串列表?
我还能采用另一种方法吗?
答案 0 :(得分:1)
您可以创建字符串列表向量:
#include <QtCore>
QVector<QStringList> splitTerms(const QStringList & source)
{
QVector<QStringList> result;
result.reserve(source.count());
for (auto src : source)
result.append(src.split(QChar('*'), QString::SkipEmptyParts));
return result;
}
int main() {
qDebug() << splitTerms(QStringList{"k*k1*k2", "s*s1*s2", "b*b1*b2"});
}
输出:
QVector(("k", "k1", "k2"), ("s", "s1", "s2"), ("b", "b1", "b2"))
答案 1 :(得分:0)
你可以拆分它并再次分配吗?
for (int i=0 ; i<2 ; i++)
{
QStringList d = stringlist_1.value(i).split("*");
qDebug()<< d ;
+ foreach (const QString &s, d) {
+ QStringList dd;
+ dd << s;
+ qDebug() << dd;
+ }
}