QT QStringList类常见用法

0. 实例化方式

QStringList fonts = { "Arial", "Helvetica", "Times" };

1. 三种遍历方式

    QStringList fonts = { "Arial", "Helvetica", "Times" };
    // 类STL迭代器
    for(auto f: fonts){
        qDebug() << f;
    }
    // 索引定位
    for(int i = 0; i < fonts.size(); i++){
        qDebug() << fonts[i];
    }
    // 类java的迭代器
    QStringListIterator javaStyleIterator(fonts);
    while (javaStyleIterator.hasNext())
        qDebug() << javaStyleIterator.next() << Qt::endl;

2.添加方式

    // 使用重载运算符 <<
    QStringList fonts;
    fonts << "Arial"
          << "Helvetica"
          << "Times";
    
    // 使用append
    fonts.append("Arial");

    // 使用insert,
    fonts.insert(fonts.size(), "hello");// 末尾添加
    fonts.insert(0, "hello"); //开头添加

    // 使用+=
    fonts += "Hei";

3. 和QString相互转换

     QString str = fonts.join(", ");
      // str == "Arial, Helvetica, Times, Courier"
     QStringList list;
     list = str.split(',');
      // list: ["Arial", "Helvetica", "Times", "Courier"]

4.查看是否包含某个值

    if(fonts.contains("Arial")){
        qDebug() << "Yes";
    }

5.首尾的删除和添加,其实大部分qt的类都具有这个函数

    fonts.pop_back();
    fonts.pop_front();
    fonts.push_back("hello");
    fonts.push_front("hello");

6.首尾的查看

    QString str = fonts.first();
    QString str1 = fonts.back();

7. 返回某个值

    int index = 1;
    QString str = fonts[index];
    QString str1 = fonts.at(index); // 使用at函数会稍微快一丢丢,因为[]其实是重载的运算符,底层调用的at,在极端追求性能的场景可以使用。

8.替换字符,QStringList支持普通字符替换和正则表达式

     // 普通字符替换
     QStringList list;
     list << "alpha" << "beta" << "gamma" << "epsilon";
     list.replaceInStrings(QRegularExpression("^a"), "o");
     // list == ["olpha", "beta", "gamma", "epsilon"]

    // 正则表达式
    QStringList list;
    list << "Bill Clinton" << "Murray, Bill";
    list.replaceInStrings(QRegularExpression("^(.*), (.*)$"), "\\2 \\1");
    // list == ["Bill Clinton", "Bill Murray"]

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值