【发布时间】:2013-11-25 14:55:45
【问题描述】:
我试图拆分一个 QString(一个文件名),我想在文件名中的两个破折号之间获取部分。
电影名称例如是“0000000398_05WA-1384864213-218.bmp”。
然而,
QStringList query;
QString filename;
QDirIterator it(qDirPictures, QDirIterator::NoIteratorFlags);
while (it.hasNext()) {
it.next();
filename = it.fileName();
query = filename.split("-");
qDebug()<<query;
}
给我一个正确的输出:
("0000000398_05WA", "1384864213", "218.bmp")
但如果我想在同一迭代中访问第二个列表项:
qDebug()<<query.at(1);
我得到一个
“QList::at 中的 ASSERT 失败:“索引超出范围”...
但是,如果我尝试:
qDebug()<<query.at(0);
我得到正确的输出:
“0000000398_05WA”
怎么了?
【问题讨论】:
-
断言是否发生在与输出正确的迭代相同的迭代中?
-
是的,确实如此。如果我访问位置 0,它工作正常。