QStringList类常用方法总结|QStringList 遍历「建议收藏」

QStringList类常用方法总结|QStringList 遍历「建议收藏」QStringList类常用方法总结 从QList继承而来,它提供快速索引为基础的接入以及快速插入和清除其成员函数用于操作这个字符串列表如append(),insert(),replace(),removeAll(),removeAt(

大家好,又见面了,我是你们的朋友全栈君。

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;
   }
  }

 

来自:
zwsj > 
《QT》

QT4中QStringList的迭代

jackyhwei 发布于 2011-06-14 11:41 点击:2143次 
QStringList类常用方法总结|QStringList 遍历「建议收藏」

来自:dl-lzx.blog.163.com

QT4中QStringList的迭代遍历
TAG: 
Qt  
QStringList  

#include <QStringList>
#include <QDebug>
#include <cassert>

/* Some simple examples using QStringList, split and join */

int main() {


QString winter = “December, January, February”;
QString spring = “March, April, May”;
QString summer = “June, July, August”;
QString fall = “September, October, November”;

QStringList list;    // QStringList重载了许多函数和操作符
list << winter;        /* append operator 1 */
list += spring;        /* append operator 2 */
list.append(summer);   /* append member function */
list << fall;

qDebug() << “The Spring months are: ” << list[1] ;


QString allmonths = list.join(“, “); //将“,”加到QStringList
/* from list to string – join with a “, ” delimiter */
qDebug() << allmonths;

QStringList list2 = allmonths.split(“, “);  //按照“,”将QStringList分割成QString
/* split is the opposite of join. Each month will have its own element. */

assert(list2.size() == 12); /* assertions abort the program  此时list2有12个元素
if the condition is not satisfied. */
//下面是各种迭代风格
foreach (QString str, list) {  /* Qt 4 foreach loop – similar
to Perl/Python and Java 1.5  style for loops. */
qDebug() << QString(” [%1] “).arg(str);
}

for (QStringList::iterator it = list.begin();
it != list.end(); ++it) { /* C++ STL-style iteration */
QString current = *it;   /* pointer-style dereference */
qDebug() << “[[” << current << “]]”;
}

QListIterator<QString> itr (list2); /* Java 1.2 style Iterator */ 
while (itr.hasNext()) {  /* Java Iterators point
inbetween elements. */
QString current = itr.next();
qDebug() << “{” <<  current << “}”;
}

return 0;
}

补充:QString test_list;

test_list<<“abc”<<“def”;  //test_list为{“abc”,”def”}

test_list[1]=”bcd”;//test_list为{“abc”,”bcd”}

(dl-lzx)

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

示例:

[cpp] 
view plain
copy

  1. #include <QStringList>  
  2. #include <QTextStream>  
  3.   
  4.   
  5. static QTextStream cout(stdout, QIODevice::WriteOnly);  
  6. int main(int argc, char *argv[])  
  7. {  
  8.     QString str = “1,2,3,4,5,6,7,8,9”;  
  9.     QStringList strList;  
  10.       
  11.     strList = str.split(“,”);  
  12.       
  13.     cout << “String list item count: “ << strList.size() << endl;  
  14.   
  15.     for(int i = 0; i < strList.size(); i++)  
  16.         cout << i + 1 << “:” << strList[i] << endl;  
  17.   
  18.     QString str2;  
  19.     str2 = strList.join(“,”);  
  20.   
  21.     cout << str2 << endl;  
  22.       
  23.     return 0;  
  24. }  

QStringList与QString互转

QStringList fonts;
fonts << “Arial” << “Helvetica” << “Times” << “Courier”;
QString str = fonts.join(“,”); 


QString str = “name1,path1;name2,path2;name3,path3”; 
QStringList list1 = str.split(“;”); 
// 注意,如果str是空字符串,list1会增加一个空字符串到列表里,其size=1,我为此吃过苦头~
for(int i=0;i<list1.size();i++) 

QStringList list2 = list1[i].split(tr(“,”)); 
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134109.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 导出Excel在GridView1.RenderControl报错

    导出Excel在GridView1.RenderControl报错导出Excel在GridView1.RenderControl报错(2008-11-2412:24:42)标签:导出excel问题 it  今天做Gridview导出Excel时,出现了以前没有的问题,我以前做过很多次导出Excel的工作,知道出现报错类型“GridView”的控件“GridView1”必须放在具有runat

    2022年7月20日
    18
  • SSRF漏洞分析与实践

    SSRF漏洞分析与实践警告请勿使用本文提到的内容违反法律。本文不提供任何担保目录警告一、漏洞简介二、漏洞产生的原因三、SSRF的类型四、利用SSRF可以实现的攻击五、实践漏洞学习(一)简单漏洞验证(二)通过dict协议获取服务器端口运行的服务。(三)通过file协议访问计算机中的任意文件(四)了解sftp及tftp协议在SSRF中的作用六、SSRF与CSRF的区别七、漏洞修复警告一、漏洞简介SSRF(Server-SideRequest…

    2022年6月25日
    22
  • 百度分享解决https格式

    百度分享解决https格式现在的百度分享都是不支持https格式的,所以碰到https格式的就会没有效果,想要解决这个问题也很简单,只需要两步:1.https://github.com/hrwhisper/baiduShare在此网址里面下载一个static包,主要要放到项目里的根目录下,我这里用的是Yii框架,是把static包直接放到web下面了2.src=’http://bdimg.share.baidu.com…

    2022年10月8日
    4
  • java mina框架实例_MINA框架简介和一个简单的例子

    基于MINA框架快速开发网络应用程序1.MINA框架简介MINA(MultipurposeInfrastructureforNetworkApplications)是用于开发高性能和高可用性的网络应用程序的基础框架。通过使用MINA框架可以可以省下处理底层I/O和线程并发等复杂工作,开发人员能够把更多的精力投入到业务设计和开发当中。MINA框架的应用比较广泛,应用的开源项目有Apache…

    2022年4月9日
    52
  • react 创建新页面_如何新建react项目「建议收藏」

    在开发React项目前最关键的当然是项目的创建,现在的前端工程化使得前端项目的创建也变得越来越复杂,今天我们介绍的是浏览器中直接引入的方式搭建react项目。如何新建react项目前文中,我们介绍过了2种react项目的搭建方式,分别是webpack的方式搭建和create-react-app脚手架的方式搭建感兴趣的同学可以点击下方链接,进行学习。webpack的方式搭建项目:怎样搭建rea…

    2022年4月14日
    140
  • Vue(1)Vue安装与使用[通俗易懂]

    Vue(1)Vue安装与使用[通俗易懂]前言Vue(读音/vjuː/,类似于view)是一套用于构建前后端分离的框架。刚开始是由国内优秀选手尤雨溪开发出来的,目前是全球“最”流行的前端框架。使用vue开发网页很简单,并且技术生态环境完善

    2022年7月30日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号