【qt】【QString的诸多操作】
前言:
qt的数据处理莫过于QString,QString对于字符串的操作多的数不胜数。下面博主就将常用的罗列出来,一起分享。
正文:
下面的操作具体为:追加,查找,删除,提取,分割,各种转换等等。
0.字符串长度:length
QString str = "hello world";
int strNum = str.length();//11
1.追加字符串:+
QString的追加字符串比较简单。可以直接2个字符串用"+"连接即可。
QString str1 = “hello”;
QString str2 = “world”;
QString str = str1 + str2;// helloworld;
2.查找字符串:indexOf
indexOf();查找到字串返回字串第一次出现的下标,否则返回-1;
QString str = “helloworld”;
int strNum = str.indexOf("wor");//5
3.删除字符串:remove
将指定字符串从父母串中删除;
QString str = "hello word";
QString str2 = str.remove("o wo");//hellrd
4.字符串提取:mid
4.1.提取指定位置的n个字符串。
QString str = ”hello word“;
QString str2 = str.mid(1,3);//ell
4.2.提取指定位置到末尾的字符串。
QString str = "hello world";
QString str2 = str.mid("2");//llo world
4.3.提取开头到指定位置的字符串。
QString str = "hello world";
QString str2 = str.left(3);//hell
4.4.提取指定位置到末尾的字符串。
QString str = "hello world";
QString str2 = str.right(3);//lo world
5.分割字符串:section
将字符串依照某个字符分割成若干快,进行提取。
QString str = "1,2,3,4,5,6";
QString str2 = str.section(",", 1,1).trimmed();//2,,第二个参数是起始分隔符,第三个参数是到第几个分割符。
6.字符串转数字:toInt
QString str = "111";
int a = 1 + str.toInt();//112
7.字符串换数组:QByteArray
QByteArray byteArray = QString.toLatin1(); // 这种方法遇到中文会变成????。
QByteArray byteArray = QString.toStdString().data(); //这种方法有可能会给不到数组大小,需要先求大小再循环。
8.字符串转bool:
bool testParam;
QString tempParam = QString::number(testParam);
//上面是bool 转QString;QVariant tempValue = tempParam;
bool tempFinished = tempValue.toBool();
//这样就把QString 类型的转换回去了。
9.qint8转QString:
qint8 a = 9;
QString b=tr("%1").arg(a);
10.Qstring到string的转化
//从QString 到 std::string
str = qstr.toStdString();
//从std::string 到QString
qstr = QString::fromStdString(str);
11.unsigned char 转化QString:
unsigned char buf[]="<ocs><header t=\"login\" c=\"1\" i=\"-1\" /><body><u>";
string bufs = (char*)buf;
QString bufq = QString::fromStdString(bufs);
ui->lineEdit->setText(bufq);
12.QString 转char*
QString ss = "<ocs><header t=\"login\" c=\"1\" i=\"-1\" /><body><u><ocs><header t=\"login\" c=\"1\" i=\"-1\" /><body><u><ocs><header t=\"login\" c=\"1\" i=\"-1\" /><body><u>";
char* cc = ss.toUtf8().data();
int len = ss.size();
cout << len<< endl;
for(int i=0; i<len; i++) {
cout << cc[i];
}
13.过滤末尾和开头的空白字符串:trimmed
QString str(" abc def ghi ");
str = str.trimmed();//str = "abc def ghi"
14.字符串大小写切换:toUpper
QString s = "Hello World";
QString ss = s.toUpper();//HELLO WORLD
HELLO WORLD
-->
QString s = "Hello World";
QString ss = s.toLower();//hello world
15.判读字符串的开头和结尾:
QString s = "http:www.baidu.com";
bool i = s.startsWith("http:");//true
QString str = "http:www.baidu.com";
bool i = str.endsWith("com");//true
16.判断子串出现的次数:
QString str = "Hello World";
QString str2 = str.count("l");// 输出3
后记:
好多,好多。。以后遇到还会补充到评论区,也欢迎大家评论区补充哦。
【qt】【QString的诸多操作】的更多相关文章
- paip.c++ qt 目录遍历以及文件操作
paip.c++ qt 目录遍历以及文件操作 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/a ...
- Qt中与文件目录相关操作
一.与文件目录操作有关操作. Qt中与文件目录相关的操作在QDir中,需加入#include <QDir>语句. QDir::drives()是列出电脑根目录下的所有目录,返回的是QFil ...
- Qt使用QNetworkAccessManager实现Ftp操作
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt使用QNetworkAccessManager实现Ftp操作 本文地址:http: ...
- Qt使用QNetworkAccessManager实现Http操作
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt使用QNetworkAccessManager实现Http操作 本文地址:http ...
- Qt QString转char[]数组
Qt QString转char[]数组 QString s1="1234456";char str[20]={0};strcpy(str,s1.toStdString().c_st ...
- 4.关于QT中的QFile文件操作,QBuffer,Label上添加QPixmap,QByteArray和QString之间的区别,QTextStream和QDataStream的区别,QT内存映射(
新建项目13IO 13IO.pro HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += gui widgets network CON ...
- 4.关于QT中的QFile文件操作,QBuffer,Label上加入QPixmap,QByteArray和QString之间的差别,QTextStream和QDataStream的差别,QT内存映射(
新建项目13IO 13IO.pro HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += gui widgets network CON ...
- Qt ------ QString 操作
QStringList QString::arg ------- 字符串的格式化处理,类始于sprintf 比如:QString("%1").arg(10,2,16,QLa ...
- QT QString 很全的使用 (转)
QString, QByteArray, 和 QVariant这三个类和容器有许多相同之处,并且在一些情况下可以被当作特殊的容器. 同样,像容器,这些类使用隐式共享来优化内存和速度. 我们将从QStr ...
随机推荐
- PHP验证身份证格式
互联网公司对身份证验证的需求越来越多,然而普通的小公司是无法对接公安部门的身份认证系统的.几乎都是在网上买一些大的互联网公司的一些认证服务.即使是便宜一些的认证价格也达到了10万次/万元.也就是一角钱 ...
- 自定义SWT控件一之自定义单选下拉框
一.自定义下拉控件 自定义的下拉框,是自定义样式的,其中的下拉框使用的是独立的window,非复选框的下拉框双击单机其它区域或选择完之后,独立window构成的下拉框会自动消失. package co ...
- 【Java例题】7.4 文件题1-学生成绩排序
4.学生成绩排序.已有一个学生成绩文件,含有多位学生的成绩:读取这个文件中的每位学生的成绩,然后排序:最后将这些排好序的成绩写到另一个文件中. package chapter7; import jav ...
- Java 复制PDF文档的2种方法
本文将介绍通过Java程序来复制PDF页面,包括: 跨文档复制,即从文档1复制到文档2 在同一文档内复制,即从页面A复制到页面B 使用工具:Free Spire.PDF for Java (免费版) ...
- C# 基于NPOI+Office COM组件 实现20行代码在线预览文档(word,excel,pdf,txt,png)
由于项目需要,需要一个在线预览office的功能,小编一开始使用的是微软提供的方法,简单快捷,但是不符合小编开发需求, 就另外用了:将文件转换成html文件然后预览html文件的方法.对微软提供的方法 ...
- 【模板】质数判断(Miller_Rabin)
题意简述 给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 题解思路 费马小定理: n是一个奇素数,a是任何整数(\(1≤ a≤n-1\)) ,则\(a^{p-1}≡1 ...
- Mybatis框架(8)---Mybatis插件原理
Mybatis插件原理 在实际开发过程中,我们经常使用的Mybaits插件就是分页插件了,通过分页插件我们可以在不用写count语句和limit的情况下就可以获取分页后的数据,给我们开发带来很大 的便 ...
- (通俗易懂小白入门)字符串Hash+map判重——暴力且优雅
字符串Hash 今天我们要讲解的是用于处理字符串匹配查重的一个算法,当我们处理一些问题如给出10000个字符串输出其中不同的个数,或者给一个长度100000的字符串,找出其中相同的字符串有多少个(这样 ...
- LoRaWAN stack移植笔记(六)_调试2
前言 调试的过程中碰到的问题基本都是以前没有遇到过的,而且需要对整个协议栈及射频方面的工作流程较熟悉才能找到问题的原因,需要多读SX1276的数据手册以及与射频芯片的物理层通信例程和MAC层通信例程进 ...
- vs中的system指令
vs中的system指令 system(“命令语句”);必须要用到头文件include<stdio.h> system里可以加许多指令 取消关机 shutdown -a 关机 sh ...