[Qt学习] 字符串列表类QStringList

QT QStringList 与 QString 常用方法 本文汇集了QString 与 (QStringList | QByteArray)之间的转换,以及QString、QStringList的一些常用方法。 阅读详情

 

 

QStringList类是QList的派生类,是字符串的列表类。它是一个非常有用的类,在处理字符串时使用QStringList,有时能事半功倍。

 

所有QList支持的操作都可用于QStringList,同时QStringList在此基础上提供了一些便于操作QString的功能。

(QStringList可以使用QList的所有方法,如:append(), prepend(), insert(), replace(), removeAll(), removeAt(), removeFirst(), removeLast(), and removeOne()。)

1. QStringList的构造函数及析构函数
构造函数:
a. QStringList ()
b. QStringList ( const QString & str )
c. QStringList ( const QStringList & other )
d. QStringList ( const QList<QString> & other )
e. QStringList ( std::initializer_list<QString> args )

析构函数未明显定义,为编译器提供的默认析构函数。

 

2. QStringList的operator+()、operator<<()方法

operator+()方法
QStringListoperator+ ( const QStringList & other ) const
该方法用于连接参数指定的QStringList与调用该方法的QStringList,相较而言,我们更经常使用的是非成员即友元函数operator+();

operator<<()方法
QStringList &operator<< ( const QString & str )
QStringList &operator<< ( const QStringList & other )
该方法是对输出流插入运算符<<的重载,将参数指定的QString或QStringList插入到调用该方法的QString中,这也是初始化QStringList的惯用方法之一。

示例:
QStringList strList1;
strList1 << "China" << "USA" << "Russia" << "England";
现在strList1中有4个QString元素。
QStringList strList2("Japan");
strList1 << strList2;
现在strList1中有5个QString对象。
strList1 = strList1.operator+(strList2);
现在strList1中有6个QString对象,分别是"China"、“USA”、“Russia”、“England”、“Japan”、“Japan”。

 

3. QStringList的indexOf()方法与lastIndexOf()方法

indexOf()方法
intindexOf ( const QRegExp & rx, int from = 0 ) const
intindexOf ( const QString & value, int from = 0 ) const
intindexOf ( QRegExp & rx, int from = 0 ) const
同QString的indexOf()一样,该方法也是查找参数内容在调用该方法的QStringList中首次出现的索引;

lastIndexOf()方法
intlastIndexOf ( const QRegExp & rx, int from = -1 ) const
intlastIndexOf ( const QString & value, int from = -1 ) const
intlastIndexOf ( QRegExp & rx, int from = -1 ) const
同QString的lastIndexOf()一样,返回参数内容在调用该方法的QStringList中最后一次出现的索引。

示例:
int index = strList1.indexOf("Japan");
index的结果为4;
index = strList1.lastIndexOf("Japan");
index的结果为5。

 

4. QStringList的join()、sort()、removeDuplicates()方法
join()方法
QStringjoin ( const QString & separator ) const
使用参数提供的分隔符将QStringList中的元素连接为一个QString,该方法同QString的split()方法功能刚好相反。
sort()方法
voidsort ()
sort()方法对调用该方法的QStringList中的对象按字母表升序排序,使用Qt的qSort()算法来实现;注意如果希望使用其他顺序进行排序,请考虑使用QMap()容器来实现。
removeDuplicates()方法
intremoveDuplicates ()
该方法去除调用其的QStringList中的重复项目,注意不需要对QStringList中的元素进行排序,去除后仍旧保持原来的顺序,函数返回remove掉的重复条目的数目。
示例:
int numRemoved = strList1.removeDuplicates();
numRemoved的结果为1,因为strList1中的"Japan"项目重复,移除前strList1中有6个元素,移除后strList1中余下5个不一样的元素;
QString str = strList1.join("");
则str中的结果为"ChinaUSARussiaEnglandJapan" ;
strList1.sort();
则strList1中的元素内容为“China”、“England”、“Japan”、“Russia”、“USA”。

 

5. QStringList的contains()和filter()方法

contains()方法
boolcontains ( const QString & str, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
如果QStringList中存在参数指定的QString对象,则返回true,否则返回false。
filter()方法
QStringListfilter( const QString & str, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
QStringListfilter( const QRegExp & rx ) const
filter()相当于一个过滤器,如果QStringList中元素还有参数指定的内容,则保留,否则去除,这些保留的元素构成一个新的QStringList。

示例:
qDebug() << strList1.contains("China");
输出结果为true;
QStringList strList2;
strList2 << "Bill Janny" << "Bill Clinton" << "Lucy Clinton" << "Bill Harry";
strList3 = strList2.filter("Bill");
则strList3中的内容为"Bill Janny"、“Bill Clinton”、“Bill Harry”。

 

示例:

 

#include 
#include 


static QTextStream cout(stdout, QIODevice::WriteOnly);
int main(int argc, char *argv[])
{
	QString str = "1,2,3,4,5,6,7,8,9";
	QStringList strList;
	
	strList = str.split(",");
	
	cout << "String list item count: " << strList.size() << endl;

	for(int i = 0; i < strList.size(); i++)
		cout << i + 1 << ":" << strList[i] << endl;

	QString str2;
	str2 = strList.join(",");

	cout << str2 << endl;
	
	return 0;
}

 

 

 

qt 容器QStringList的常见使用 4.foreach遍历.遍历链表weekList,用QString类型的变量 s 临时存放里面的元素.这也正好印证了QStringList里面存放的元素是QString类型.5.使用STL风格迭代器访问.for循环中,只要迭代器没有指向链表的最后一个元素的下一个位置(end()),就继续往后读(++it).8.insert(): 往链表中插入元素.参数:指定插入链表的位置,指定插入的QString类型字符串.3.for遍历链表.使用函数 at(),传入的参数就是元素的位置.下表需要从0数起. 阅读详情

相关推荐

QStringList 使用详解

QStringList 提供了丰富的功能来处理字符串列表,包括添加、删除、查找、排序和连接等操作。QT开发之路 企业级开发系列文章,主要目标快速学习、完善、提升 相关技能 高效完成企业级项目开发 分享在企业中积累的实用技能和经验。通过具体的编码过程、代码示例、步骤详解、核心内容和展示的方法解决遇到的实际问题。

断点 1525

QStringList详细介绍

QStrignList、filter、排序、去重复

zw_ggr_2017的博客 1万+

QT之QStringList、QString

一、QStringList类提供字符串列表。 QStringList继承自QList。与QList一样,QStringList也是隐式共享的。它提供了快速的基于索引的访问以及快速的插入和删除。将字符串列表作为值参数传递既快速又安全。 QList的所有功能也适用于QStringList。例如,可以使用isEmpty()来测试列表是否为空,可以调用append()、prepend()、insert...

qhs的博客 2962

【QT 基础教程 七】QStringList类详解

QStringList类的简介、数据访问方式以及常用接口的讲解

wddkxg的博客 2万+

Qt:QString和QStringList

Qt则提供了自己的字符串实现:QString,QString也重载的+和+=运算符。

m0_69414302的博客 1383

QT中QVBoxLayout、QWidget、QHBoxLayout、QStringList用法

下面详细说明每一部分的用法以及它们在实际开发中的应用场景。

Yy468545的博客 1790

[QT入门]字符串列表类QStringList

是 Qt 框架中一个非常实用的类,它封装了基于 的字符串列表,提供了丰富的函数来操作和管理字符串集合。这个类特别适用于需要处理一系列字符串的场合,比如读取文件列表、存储用户输入等。以下是 基本用法和一些高级特性。目录一、基本概念二、基本操作1. 创建和初始化2. 添加和移除元素3. 访问元素4. 排序和查找三、高级特性1. 字符串分割与合并2. 过滤和筛选3. 字符串替换注意事项类定义: 继承自 ,因此它拥有 的所有功能和特性,并针对字符串列表进行了优化。用途:用于存储和操作一系列的 对象。 2

weixin_45843323的博客 3308

QT的QStringList类的使用

详细说明 QStringList类提供字符串列表。 QStringList继承自QList 。像QList一样,QStringList是隐式共享的。它提供了基于索引的快速访问以及快速的插入和删除。将字符串列表作为值参数传递既快速又安全。 QList的所有功能也适用于QStringList。例如,可以使用isEmpty()测试列表是否为空,并且可以调用诸如append(),prepend(),insert(),replace(),removeAll(),removeAt(),removeFirst()之类的函

希望我的博客,能帮上你解决学习中工作中所遇到的问题 3440

「QT」基础数据类 之 QStringList 字符串列表类

QStringList类提供了多种构造函数,用于创建QStringList对象。:构造一个空的字符串列表。:复制构造函数,用于创建一个与现有QStringList对象相同的字符串列表。:使用C++11的初始化列表语法构造字符串列表。此外,由于QStringList继承自QList,因此还可以使用QList的构造函数来创建QStringList对象。QStringList类提供了大量的公有成员函数,用于字符串列表的操作和处理。:在字符串列表末尾追加一个字符串。:在字符串列表开头插入一个字符串。

何曾参静谧的博客 1338

基于eBPF的零侵入LLM智能体观测:AgentSight架构与实战

在分布式系统和云原生架构中,可观测性是保障应用稳定运行与高效排障的核心能力。其原理在于通过日志、指标和追踪三大支柱,从外部视角持续收集和分析系统状态,而非依赖应用内部埋点。这一技术价值在于能以统一、低开销的方式,理解复杂系统的内部行为,尤其在微服务、容器化及Serverless等动态环境中至关重要。应用场景广泛覆盖了性能监控、安全审计、故障诊断与根因分析。当我们将这一基础理念应用于当下快速发展的AI智能体领域时,便自然引出了对LLM智能体进行无侵入、系统级行为观测的需求。传统的应用层方案需要集成SDK,对闭

weixin_28696185的博客 324

verilog常用模块1——按键消抖模块详解

按键消抖模块key_filter 1. 原理介绍 如图,按键未按下时keys信号为高电平,按下则为低电平;通过检测keys信号电平,就可以判断按键状态。 但反作用弹簧会导致抖动现象,电平信号出现一段不确定波形 一般情况下,抖动的电平信号为1的持续时间不会超过20ms,只要通过对抖动波形的发生时长计时(计数),当为1的时长超过20ms,则可判定 进入了发生了按键按下/释放动作,并确定按键状态...

coin的博客 1万+

Qt扫盲-QStringList字符串列表总结

QStringList 继承自QList< QString>。功能和QList一样,QStringList也是隐式共享的。它提供了快速的基于索引的访问以及快速的插入和删除操作。将字符串列表作为值参数传递既快速又安全。一般我也是会用这个的,很多Qt的api接口也会用到这个类型作为接口。QList的所有功能也适用于QStringList。

洪源兄 6465

亚博k210视觉模块与stm32双向通信

【代码】亚博k210视觉模块与stm32双向通信。

w_150831的博客 3246

QStringList 字符串列表类

QStringList 是 Qt 中的一个类,用于处理字符串列表。它是 QString 类的集合,提供了一系列方法来操作和处理字符串列表。上面的示例展示了 QStringList 的一些常见操作,例如添加元素、获取元素个数、检查元素是否存在、连接元素成字符串等。通过这些方法,可以方便地对字符串列表进行处理和操作。

qq_51372804的博客 2580

告别环境配置烦恼:用Conda一键搞定GATK4、samtools、fastp等生信分析全家桶

本文介绍如何利用Conda快速搭建包含GATK4、samtools、fastp等工具的生物信息学分析环境,解决软件安装和版本冲突问题。通过详细的配置步骤和实战案例,帮助研究者十分钟内完成重测序分析全家桶的环境配置,显著提升上游分析效率。

weixin_30753873的博客 334

COMSOL+AI实战:5个超实用技巧让你的仿真效率翻倍(附Python代码)

本文详细介绍了如何将人工智能(AI)与COMSOL仿真软件结合,通过Python脚本实现五大实用技巧,包括自动化生成数据集、构建代理模型、集成AI优化算法、利用神经网络加速场量求解以及智能结果分析,从而显著提升多物理场仿真的效率和自动化水平。

weixin_29230865的博客 443

qt-C++笔记之QStringList

— 2023-12-03。

小勇博客 5259

廉价却有效?ESD防护中的电容

摘要:在成本敏感型电子产品设计中,多层陶瓷电容(MLCC)可作为TVS二极管的替代方案用于静电放电(ESD)防护。其工作原理是通过电容充放电特性吸收静电能量,而非电压钳位。计算表明100nF/50V MLCC可有效缓冲8kV静电冲击,但存在吸收能量有限、无自恢复等局限。建议将MLCC作为一级缓冲措施,配合TVS等器件形成多级防护,并优先选择X7R材质、100nF容值、50V耐压的0402/0603封装MLCC。该方案在低速信号和电源引脚防护中具有显著成本优势,但不能完全替代专业ESD抑制器。

硬核科技 430

Qt入门-字符串列表类QStringList

原创文章,转载请注明来自:http://blog.youkuaiyun.com/xgbing     QStringList类是QList的派生类,是字符串的列表类。它是一个非常有用的类,在处理字符串时使用QStringList,有时能事半功倍。     QStringList可以使用QList的所有方法,如:append(), prepend(), insert(), replace()

小白白的博客 3341

NVIDIA Isaac GR00T N1 人形机器人强化学习入门教程(二)详细步骤

LeRobot 格式 1.1 加载数据集 要加载数据集,我们需要定义以下 3 项内容: 在数据中显示图像帧 我们还可以对 LeRobotSingleDataset 类中的数据进行一系列转换。下面展示了如何对数据进行转换。 现在看看应用转换后的数据有何不同。 例如,对状态和操作进行规范化和串联,对视频图像进行裁剪、调整大小和颜色抖动。 二、GR00T 推断 本教程介绍如何使用 GR00

2506_90492529的博客 3013

打造AI智能体员工,我用扣子复刻了华与华、奥美和金枪大叔

这事说穿了,就是你用多个AI智能体,分别扮演专业角色,构成一支能力互补、各司其职的“数字团队”。每个智能体,都有明确的角色设定、任务边界和接口形式。它不再是一个泛泛的ChatGPT,而是你手下的“品牌顾问”、“策略专家”、“文案大神”、“短视频导演”、“运营总监”。简单来说,你不再是雇一个人,而是养一群机器人打工——24小时不摸鱼,不请假,不离职。如果你是个人创业者、内容创作者、培训机构、中小企业主,其实都可以尝试构建属于你自己的“AI虚拟员工矩阵”。

互联网架构师笔记 1498

Qt字符串类[QString]及字符串链表类[QStringList]

QStrting类+QStringList类

星辰的博客 1987

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

QT学习笔记-QStringList,QTimer

在Qt框架中,是一个模板类的特化,专门用于处理QString对象(即Qt中的字符串)的列表。这里,是一个类型的变量,用于存储和管理一系列的字符串(QString对象)。以下是对。

m0_63052064的博客 1819

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

QT的QStringList的使用

contains() 函数告诉您列表是否包含给定字符串,而 indexof() 函数返回给定字符串第一次出现的索引。另一方面,lastindexof() 函数返回字符串最后一次出现的索引。您可以使用 join() 函数将字符串列表中的所有字符串连接成单个字符串(带有可选的分隔符)。最后,replaceinstrings() 函数依次调用字符串列表中的每个字符串上的 replace()。可以使用insert 、append() 和 operator

Helloorld_1的博客 2307

QT中QStringList如何查找指定字符串,有哪些方式?

本文介绍了Qt中QStringList查找字符串的常用方法,包括contains()、indexOf()、lastIndexOf()和filter(),并提供了代码示例。核心技巧是通过Qt::CaseSensitivity参数控制大小写敏感性,还分析了不同方法的适用场景和性能优化建议。文章强调根据具体需求选择合适方法,如快速检查用contains(),精确查找用indexOf(),模式匹配用filter()。最后给出了综合示例和最佳实践,帮助开发者高效处理字符串查找任务。

学无止尽,谨言慎行! 1027

Qt之QStringList学习

使用split()函数可以将一个普通的字符串按照指定的分隔符分割为多个子字符串,并将结果存入一个QStringList中。使用join()函数可以将字符串列表中的所有元素连接为一个字符串,并使用指定的分隔符分隔各个元素。使用foreach循环可以方便地遍历字符串列表中的每个元素,你可以对每个元素执行相应的操作。这将创建一个包含"apple"、"banana"和"orange"这三个元素的字符串列表。注意,下标从0开始。使用clear()函数可以删除字符串列表中的所有元素,使其变为空列表。

qq_50296712的博客 2124
上一篇: [知识汇总] Qt、Qt SDK以及Qt Creator的区别
下一篇: [QT学习]编译错误 undefined reference to vtable for **
Algorithm_goddness
博客等级 码龄10年 25粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Algorithm_goddness

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值