QT 之QStringList
创始人
2024-03-22 22:00:10

一、描述

QStringList 继承自 QList。 与 QList 一样,QStringList 也是隐式共享的。 它提供基于索引的快速访问以及快速插入和删除。将字符串列表作为值参数传递既快速又安全。

二、接口

QStingList aFileContent;

1、获取字符串列表具有的文本行数

 int rowCnt=aFileContent.count(); //文本行数,第1行是标题

2、增加字符串 append()

QStringList可以通过append(),或使用<< 来添加List元素,如

qstrList.append("python");
qstrList << "PHP" ;

3、插入字符串 insert()

插入字符串insert方法可以将字符串插入到我们指定的list的位置:

qstrList.insert(0,"C#");

4、替换字符串 replace()

通过replace()方法我们可以替换掉list中某一位置的值

qstrList.replace(0,"Web");

5、删除字符串 removeAt(), removeFirst(), removeLast(), and removeOne()

他表示删除一个具体的值,参数为我们list里的内容,其定义是:

bool isflag = qstrList.removeOne("C#");//删除一个指定的元素,删除成功返回true,删除失败返回fasle
qDebug() << isflag << endl;
int n = qstrList.removeAll("Java");//删除所有的指定的元素,返回删除的元素个数
qDebug() << n << endl;
qstrList.removeAt(2);//删除第三个元素
qstrList.removeFirst();//删除第一个元素
qstrList.removeLast();//删除最后一个元素

三、实例QStringList的方法

1. 合并字符串使用join( )

QString str = fonts.join(",");
// str == "Android,Qt Creator,Java,C++"

2. 拆分字符串

QString str = "Android,Qt Creator, ,Java,C++";
QStringList list1 = str.split(",");
// list1: [ "Android", "Qt Creator"," ", "Java", "C++" ]
QStringList list2 = str.split(",", QString::SkipEmptyParts);
// list2:[ "Android", "Qt Creator", "Java", "C++" ]
也就是说如果有QString::SkipEmptyParts,空项不会出现在结果。默认情况下,空项被保留 

3. 索引

IndexOf()函数返回给定字符串的第一个出现的索引。 
而lastIndexOf()函数,返回字符串的最后一次出现的索引。QStringList qstrList;qstrList<<"Java" << "Android" << "Qt Creator" << "Java" << "C++";
int index = qstrList.indexOf("Java");//返回 0
int index = qstrList.indexOf("Java");//返回 3

4. 替换replaceInStrings()

QStringList files;
files << "$file/src/moc/moc.y" <<  "$file/src/moc/moc.l" <<  "$file/include/qconfig.h";
files.replaceInStrings("$file", "/usr/file");
// files: [ "/usr/file/src/moc/moc.y", ...]

5. 过滤filter()

可以让你提取一个新的列表只包含这些字符串包含一个特定的字符串(或匹配特定正则表达式):QStringList list;
list << "Bill Murray" << "John Doe" << "Bill Clinton";
QStringList result;
result = list.filter("Bill");
// result: ["Bill Murray", "Bill Clinton"]//比较字符串的时候 
//Qt::CaseSensitive  搜索区分大小写
//Qt::CaseInSensitive   不区分大小写
result = list.filter("bill",Qt::CaseInSensitive);
// result: ["Bill Murray", "Bill Clinton"]

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...