我有一个像这样的QString
列表
daily-logs.06-01-2015.01
daily-logs.06-01-2015.02
daily-logs.06-01-2015.03
现在我想获得新的QStringList
获取最后一个字符串的数字
01
02
03
:
QStringList list = folder_file.entryList(nameFilter);
for(int i=0;i<list.count();i++){
qDebug()<<list.at(i).toLocal8Bit().constData();
QStringList list2=list.at(i).split(".");
for(int j=0;j<list2.count();j++){
//qDebug()<<list2.at(j).toLocal8Bit().constData();
QString list3=list2.value(list2.length()-1);
qDebug()<<list3;
//qDebug()<<list3;
}
我只能获得最后一个值。但我认为这更像是循环。那么,是否有人有一种方法可以获得更高的性能。
答案 0 :(得分:5)
使用特殊文件QFileInfo::suffix
功能:
const auto& list = folder_file.entryList(nameFilter);
QStringList output;
for(const auto& f : list)
output << QFileInfo(f).suffix();
答案 1 :(得分:2)
你的代码太脏......
QStringList DoSomeDirtyWork( const QStringList& input )
{
QStringList output;
for ( auto it = input.constBegin(); it != input.constEnd(); ++it )
{
const QString& src = *it;
const int pos = src.lastIndexOf('.');
output << src.mid( pos );
}
return output;
}
答案 2 :(得分:1)
QStringList list = folder_file.entryList(nameFilter);
for (int i = 0; i < list.count(); ++i) {
QStringList wordList = list[i].split('.');
qDebug() << wordList.takeLast();
}
也许它不是那么可爱和短暂,但它是一个没有QFileInfo的例子。