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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java开发手册之注释规约「建议收藏」

    Java开发手册之注释规约「建议收藏」Java开发手册之注释规约

    2022年4月22日
    43
  • 暴力破解工具-hydra使用「建议收藏」

    一、hydra简介:ydra(九头蛇),分布式任务处理系统,由社交标签服务提供商AddThis六年前开发,现在已得到Apache的开源许可,就像Hadoop一样,只是还没有Hadoop那样的知名度和声势。Hydra的创造者称,该“多头”平台非常擅长处理一些大的数据任务——对非常大的数据集进行实时处理。hydra是一款世界顶级密码暴力破解工具,支持几乎所有的协议的在线破解,功能强大,其密码…

    2022年4月9日
    306
  • Analyzing the Performance of an Anycast CDN(含论文谷歌翻译,人工补正)

    Analyzing the Performance of an Anycast CDN(含论文谷歌翻译,人工补正)AnalyzingthePerformanceofanAnycastCDNABSTRACTContentdeliverynetworksmustbalanceanumberoftrade-offswhendecidinghowtodirectaclienttoaCDNserver.WhereasDNS-basedredir

    2022年5月20日
    34
  • delphi xe datasnap 服务器显示客户端,Delphi xe datasnap[通俗易懂]

    delphi xe datasnap 服务器显示客户端,Delphi xe datasnap[通俗易懂]我想从客户端向服务端提交多个OleVariant内容.最初我想这样这实现functionSaveData(aDataArr:arrayofOleVariant;aTableArr:arrayofstring;aKeyArr:arrayofstring;varaErrorStr:string):Boolean;这样经测试不行,DATASNAP参数不能为数组.现在我用TJSONObje…

    2022年7月18日
    13
  • AV1 码流分析器的搭建

    AV1 码流分析器的搭建作为HEVC比较热门的继承者,AOM推进的AV1在2018年进入了大家的视野。研究AV1的新编码工具离不开一个强大的码流分析工具。AOM得益于开源社区的贡献,其码流分析工具也在同步的推出,给研究AV1新编码工具的小伙伴带来省去不少麻烦。本文主要简单介绍一下如何搭建一个本地的AV1码流分析工具以及在大家过程中遇到的问题。1.AV1码流分析工具简单介绍AV1码流分析工…

    2022年9月22日
    2
  • 有限覆盖定理证明闭区间套定理_二维有限覆盖定理

    有限覆盖定理证明闭区间套定理_二维有限覆盖定理1.9上确界和下确界证明:03:00定理有上界的非空集合必有上确界有下界的非空集合必有下确界第二种方式16m-Sup(-E)=imfE或Sup(-E)=-imfE如果E没有上界,就说E趋于+无穷如果E没有下界,就说E趋于负无穷p.41(3)24m第十节,有限覆盖定理一族开区间32mHeime-Borel定理练习Bolzano-Weieristra…

    2025年6月11日
    2

发表回复

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

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