QT QStringList 用法

本文介绍了QStringList类的基本用法,包括字符串的增加、合并、拆分、索引查找、替换及过滤等功能,并提供了实例代码帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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"]

7.遍历

  QList<QString>::Iterator it = user.begin(),itend = user.end();
  int i = 0;
  for (;it != itend; it++,i++){
   if (*it == pFindLine->text()){//找到,高亮显示
    QModelIndex index = model->index(i);
    m_pTabList->setCurrentIndex(index);
    break;
   }
  }

### Qt 中 `QStringList` 的使用方法及示例 #### 1. 基本概念 `QStringList` 是 Qt 框架中的一个非常实用的类,它基于 `QList` 进行了封装,专门用于处理字符串列表。除了继承自 `QList` 的所有功能外,`QStringList` 提供了许多便捷的方法来简化字符串列表的操作[^1]。 #### 2. 创建和初始化 可以创建一个空的 `QStringList` 或者通过传递一系列字符串来进行初始化: ```cpp // 创建一个空的 QStringList QStringList list; // 初始化时传入多个字符串 QStringList fruits = {"Apple", "Banana", "Cherry"}; ``` #### 3. 添加元素 可以通过多种方式向 `QStringList` 中添加新的字符串项: ```cpp list.append("Orange"); // 单个追加 list += "Grape"; // 另一种单个追加的方式 list << "Lemon" << "Mango"; // 同时追加多个项目 ``` #### 4. 移除元素 同样支持不同的移除操作以删除不需要的条目: ```cpp if (list.contains("Banana")) { list.removeAll("Banana"); } // 删除第一个匹配到的元素 list.removeOne("Apple"); // 清空整个列表 list.clear(); ``` #### 5. 查找与过滤 提供了方便快捷的方式来查找特定条件下的子集: ```cpp bool found = list.contains("Peach", Qt::CaseInsensitive); // 不区分大小写的查找 // 获取所有以 'A' 开头的水果名称组成的子列表 QStringList startsWithA = list.filter(QRegularExpression("^A")); ``` #### 6. 排序 能够轻松地对内部存储的数据按照字母顺序或其他方式进行排列: ```cpp list.sort(); // 默认按字典序升序排序 list.sort(Qt::DescendingOrder); // 降序排序 ``` #### 7. 转换与其他操作 还可以执行一些常见的转换和其他有用的功能: ```cpp QString joinedString = list.join(", "); // 将列表连接成单一字符串并指定分隔符 int count = list.count(); // 返回列表中项目的数量 bool isEmpty = list.isEmpty(); // 判断列表是否为空 QString firstItem = list.first(); // 访问首个元素 QString lastItem = list.last(); // 访问最后一个元素 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值