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(“,”)); 
}

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • fiddler手机抓包 443「建议收藏」

    fiddler手机抓包 443「建议收藏」安装证书常规设置之后仍然抓不到包:https://blog.csdn.net/lx_zsdong/article/details/82257698

  • Nmap 命令[通俗易懂]

    Nmap 命令[通俗易懂]Nmap命令探测主机信息一、扫描指定IP所开放的端口输入命令:nmap-sS-p-1-65535-v192.168.1.106表示用半开扫描,扫描指定端口为1到65535,并且显示扫描过程Nmap常用扫描参数及说明参数 说明-sT TCPconnect()扫描,这种方式会在目标主机的日志中记录大批连接请求和错误信息-sS 半开扫描,很少有系统能够把它记入系统日志。不过,需要root权限-sF-sN 秘密FIN数据包扫描,XmasTree、Null扫描模式-sP pin

  • 开始laravel项目+理解

    开始laravel项目+理解一.laravel运行理解Ⅰ.开始,public/index.php此文件有两个作用。①:作为入口的起点,引导构建服务所需要的一切(包括路由,服务容器之类的)。②:作为所有请求的必经之路。请求经过此文件,会被“指派”到合适的路由,中间件等等进行处理。tips:所以用phpstudy的时候,记得设置一下①指定项目的根目录。②指定下路由。我用的nginx,设置的vhost.config文件。画起第一行用以指定项目的根目录,就apache的www文件的意思。第二行是指定所有请求最终会定向

  • Execution failed for task ‘:sdkdemo:mergeDebugResources‘.

    Execution failed for task ‘:sdkdemo:mergeDebugResources‘.

  • k8s pod调度_调度方式

    k8s pod调度_调度方式k8s概述定向调度亲和性调度污点和容忍Pod的调度概述在默认情况下,一个Pod在哪个Node节点上运行,是由Scheduler组件采用相应的算法计算出来的,这个过程是不受人工控制的。但是在实际使用中,这并不满足需求,因为很多情况下,我们想控制某些Pod到达某些节点上,那么应该怎么做?这就要求了解kubernetes对Pod的调度规则,kubernetes提供了四大类调度方式。自动调度:运行在哪个Node节点上完全由Scheduler经过一系列的算法计算得出。定向调度:NodeName、NodeS

  • python pycharm教程_Pycharm简单使用教程(入门小结)

    python pycharm教程_Pycharm简单使用教程(入门小结)1、下载pycharmpycharm是一种PythonIDE,能够帮助我们在编写代码时提高效率。网上提供的有专业版和教育版之分。专业版是收费的,功能更全面点。教育版或社区版是阉割版本,但它是免费的。2、pycharm的安装比较简单,官网下载备注:刚下载好的pycharm无法运行程序“Cannotstartprocess,theworkingdirectory…”,两种解决方法1.选择…

发表回复

您的电子邮箱地址不会被公开。

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