QStringList的简单使用方法

QStringList的简单使用方法

https://blog.csdn.net/u013360881/article/details/52170487

 分类:

      在前段时间研究QT源码时,遇到QStringList类,下面结合实例,对其用法了解一下。

 

[html] view plain copy
 
  1. <span style="font-size:18px;">interpolationMethodLabel=new QLabel(tr("Interpolation method"),this);  
  2.     interpolationMethodInfo=new QComboBox(this);  
  3.     QStringList iterMethodLabels;  
  4.     iterMethodLabels<<QString(tr("Linear"))  
  5.                  <<QString(tr("Spline Cubic"))  
  6.                  <<QString(tr("Cubic"))  
  7.                  <<QString(tr("Lanczos4"));</span>  

 

 

     其实在这里用到QStringList类添加字符串功能,用<<来增加方法的字符串 ,了解其用法很容易清楚其相当于

 

[html] view plain copy
 
  1. <span style="font-size:18px;">QStringList iterMethodLabels;  
  2.     iterMethodLabels:["Linear","Spline Cubic","Cubic","Lanczos4"];</span>  
    下面是参考一下帮助文档和网上资料总结一下QStringList类的用法。

QStringList类提供了一个字符串列表从QList <QString>继承而来,它提供快速索引为基础的接入以及快速插入和清除其成员函数用于操作这个字符串列表如append(),insert(), replace(), removeAll(), removeAt(), removeFirst(), removeLast(), and removeOne()等。

1. 增加字符串
可以通过append(),或使用<<,如
QStringList fonts;
fonts << "Arial" << "Helvetica" << "Times" << "Courier";

// fonts:[ "Arial" ,"Helvetica", "Times" , "Courier"]

2. 合并字符串使用join( )
QString str = fonts.join(",");
// str == "Arial,Helvetica,Times,Courier"
3. 拆分字符串
QString str = " Arial,Helvetica, ,Times,Courier ";
QStringList list1 = str.split(",");
// list1: [ " Arial ", " Helvetica ",” “, " Times ", " Courier " ]
QStringList list2 = str.split(",", QString::SkipEmptyParts);
// list2: [ " Arial ", " Helvetica ", " Times ", " Courier " ]
也就是说如果有QString::SkipEmptyParts,空项不会出现在结果。默认情况下,空项被保留
4. 索引
IndexOf()函数返回给定字符串的第一个出现的索引。
而lastIndexOf()函数,返回字符串的最后一次出现的索引。
5. 替换replaceInStrings()
QStringList files;
files << "$QTDIR/src/moc/moc.y"
<< "$QTDIR/src/moc/moc.l"
<< "$QTDIR/include/qconfig.h";
files.replaceInStrings("$QTDIR", "/usr/lib/qt");
// files: [ "/usr/lib/qt/src/moc/moc.y", ...]
6. 过滤filter()
可以让你提取一个新的列表只包含这些字符串包含一个特定的字符串(或匹配特定正则表达式):
QStringList list;
list << "Bill Murray" << "John Doe" << "Bill Clinton";
QStringList result;
result = list.filter("Bill");

// result: ["Bill Murray", "Bill Clinton"]

 

#include <QCoreApplication>
#include<QDebug>

/*
QStringList类提供了一个字符串列表从QList <QString>继承而来,
它提供快速索引为基础的接入以及快速插入和清除其成员函数用于操作这个字符串列表
如append(),insert(), replace(), removeAll(), removeAt(),
removeFirst(), removeLast(), and removeOne()等。
*/

void printStringList(const QStringList &StrList)
{
    foreach(QString str,StrList)
    {
        qDebug()<<str;
    }
    qDebug()<<"--------------------------";
}

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    {
        QStringList iterMethodLabels;
        iterMethodLabels<<QString("Linear")
                     <<QString("Spline Cubic")
                     <<QString("Cubic")
                     <<QString("Lanczos4");
        printStringList(iterMethodLabels);

        //1. 增加字符串可以通过append(),或使用<<,如
        QStringList fonts;
        fonts << "Arial" << "Helvetica" << "Times" << "Courier";
        // fonts:[ "Arial" ,"Helvetica", "Times" , "Courier"]
        printStringList(fonts);

        //6. 过滤filter()
        //可以让你提取一个新的列表只包含这些字符串包含一个特定的字符串(或匹配特定正则表达式):
        QStringList list;
        list << "Bill Murray" << "John Doe" << "Bill Clinton";
        QStringList result;
        result = list.filter("Bill");
        // result: ["Bill Murray", "Bill Clinton"]
        printStringList(result);


    }
    {
        QStringList fonts;
        fonts << "Arial" << "Helvetica" << "Times" << "Courier";
        //2. 合并字符串使用join( )
        QString str = fonts.join(",");
        // str == "Arial,Helvetica,Times,Courier"
        qDebug()<<str;
        qDebug()<<"--------------------------";
    }
    {
        //3. 拆分字符串
        QString str = " Arial,Helvetica, ,Times,Courier ";
        QStringList list1 = str.split(",");
        // list1: [ " Arial ", " Helvetica ",” “, " Times ", " Courier " ]
        printStringList(list1);
        QStringList list2 = str.split(",", QString::SkipEmptyParts);
        // list2: [ " Arial ", " Helvetica ", " Times ", " Courier " ]
        //也就是说如果有QString::SkipEmptyParts,空项不会出现在结果。默认情况下,空项被保留
         printStringList(list2);
/*
--------------------------
" Arial"
"Helvetica"
" "
"Times"
"Courier "
--------------------------
" Arial"
"Helvetica"
" "
"Times"
"Courier "
--------------------------
*/
    }
    {
        //4. 索引
        //IndexOf()函数返回给定字符串的第一个出现的索引。
        //而lastIndexOf()函数,返回字符串的最后一次出现的索引。
        QStringList fonts;
        fonts << "Arial" << "Helvetica" << "Times" << "Courier"<< "Arial" << "Helvetica" << "Times" << "Courier";
        int idexCourier=fonts.indexOf("Courier");//3
        qDebug()<<"idexCourier="<<idexCourier;
        int lastIndexCourier=fonts.lastIndexOf("Courier");//7
        qDebug()<<"lastIndexCourier="<<lastIndexCourier;
    }
    return a.exec();
}

 

posted @ 2018-04-19 11:17  sky20080101  阅读(682)  评论(0)    收藏  举报