获取 QStringList 的最后一个元素

Get last element of QStringList

本文关键字:元素 最后一个 QStringList 获取      更新时间:2023-10-16

我有一个这样的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;
    }

我只能得到最后一个值。但我认为这更多的是循环。那么有没有人有办法获得更多的性能。

使用特殊的文件QFileInfo::suffix函数:

const auto& list = folder_file.entryList(nameFilter);
QStringList output;   
for(const auto& f : list)   
    output << QFileInfo(f).suffix();

你的代码太脏了...

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;
}
QStringList list = folder_file.entryList(nameFilter);
for (int i = 0; i < list.count(); ++i) {
    QStringList wordList = list[i].split('.');
    qDebug() << wordList.takeLast();
}

也许它没有那么可爱和简短,但它是一个没有QFileInfo的例子。