一、拼接字符串

拼接字符串有两种方法: +=  、  append

QString s;
s = "hello";
s = s + " ";
s += "world";
qDebug() << s; // "hello world"
QString s1 = "hello" ;
QString s2 = "world" ; s1.append(" ");
s1.append(s2);
qDebug() << s1; // "hello world"

二、格式化字符串

格式化字符串的使用方法和Python的差不多,都是比较简单的,也是有两种方法: sprintf()     、  arg()

QString s1, s2;
s1.sprintf("%s", "hello");
s2.sprintf("%s %s", "hello", "world"); qDebug() << s1; // "hello"
qDebug() << s2; // "hello world"
QString s1;
s1 = QString("My name is %1, age %2").arg("zhangsan").arg(18); qDebug() << s1; // "My name is zhangsan, age 18"

三、编辑字符串

处理字符串的方法有种:

insert() 在原字符串特定位置插入另一个字符串

QString s = "hello";
s.insert(0, "aa"); qDebug() << s; // "aahello"
prepend() 在原字符串开头位置插入另一个字符串
QString s = "hello";
s.prepend("abc_"); qDebug() << s; // "abc_hello"
replace() 用指定的字符串替代原字符串中的某些字符
QString s = "hello";
s.replace(0, 3, "a"); // 0-3的字符替换成a qDebug() << s; // "alo"
trimmed() simplified() 移除字符串两端的空白字符
QString s = "   hello";
s = s.trimmed(); qDebug() << s; // "hello"

四、判断

startsWith() 判断字符串是否以某个字符开头
endsWith() 判断字符串是否以某个字符结尾
QString s = "hello";

// true,大小写不敏感
qDebug() << s.startsWith("H", Qt::CaseInsensitive); // true,大小写敏感
qDebug() << s.startsWith("h", Qt::CaseSensitive);
isNull() isEmpty() 字符串判空
qDebug() << QString().isNull();     // true
qDebug() << QString().isEmpty(); // true
qDebug() << QString("").isNull(); // false
qDebug() << QString("").isEmpty(); // true

五、字符串间比较

operator<(const QString&)  // 字符串小于另一个字符串,true
operator<=(const QString&) // 字符串小于等于另一个字符串,true
operator==(const QString&) // 两个字符串相等,true
operator>=(const QString&) // 字符串大于等于另一个字符串,true // 比较两个字符串,返回数字
localeAwareCompare(const QString&, const QStriing&) // 加入了大小写是否敏感参数,返回数字
compare(const QString&, const QString&, Qt::CaseSensitivity)

六、字符串格式转换

toInt()   // 转整形
toDouble() // 转双进度浮点数
toFloat() // 转单精度浮点数
toLong() // 转长整型
toLongLong() // 转长长整形 toAscii() // 返回一个ASCII编码的8位字符串
toLatin1() // 返回一个Latin-1(ISO8859-1)编码的8位字符串
toUtf8() // 返回一个UTF8编码的8位字符串
toLocal8Bit() // 返回一个系统本地编码的8位字符串

Qt数据结构-QString一:常用方法的更多相关文章

  1. Qt 的QString类的使用

    Qt的QString类提供了很方便的对字符串操作的接口. 使某个字符填满字符串,也就是说字符串里的所有字符都有等长度的ch来代替. QString::fill ( QChar ch, int size ...

  2. QT之QString的arg方法

    转载.标记一下,总结的很好 转自 http://www.cnblogs.com/lomper/p/4135387.html 在QT的QString中,arg方法类似于C中的printf中使用的格式输出 ...

  3. Qt的QString转换问题

    之前是写C#的,涉及类型转换要么是强转,类似(String)这样,要么是用Converter提供的转换方法,但是今天开发qt界面的时候,使用(QString)强转int类型的时候出现了乱码: 后来研究 ...

  4. QT数据结构内存分配策略

    在QT的Reference中无意看到了QString及其他类型数据结构内存的分配策略,翻译并记录一下. 在QString的数据结构中,QString通过一次附加一个字符来动态构建字符串.假设我们向QS ...

  5. Qt中 QString 和int, char等的“相互”转换

    转载:http://blog.csdn.net/ei__nino/article/details/7297791 Qt中 int ,float ,double转换为QString 有两种方法 1.使用 ...

  6. Qt中 QString 和int, char等的“相互”转换,关键是QString.toLocal8Bit().data();

    Qt中 int ,float ,double转换为QString 有两种方法 1.使用 QString::number(); 如: long a = 63; QString s = QString:: ...

  7. Qt 中QString 字符串操作:连接、组合、替换、去掉空白字符

    Qt中的字符串类 QString类 保存了16位Unicode值,提供了丰富的操作.查询和转换等函数. QString 字符串有如下几个操作符: (1) "+" 用于组合两个字符串 ...

  8. Qt下 QString转char*

    Qt下面,字符串都用QString,确实给开发者提供了方便.Qt再使用第三方开源库时,由于库的类型基本上都是标准的类型,字符串遇的多的就是Char*类型 Qt再使用第三方开源库时,由于库的类型基本上都 ...

  9. QT中QString 与 int float double 等类型的相互转换

    Qt中 int ,float ,double转换为QString 有两种方法 1.使用 QString::number(); 如: long a = 63; QString s = QString:: ...

  10. Qt中QString、QByteArray、int、double之间转换

    最近写Qt中的tcp网络编程,Socke连接后,接受到的数据类型是字节型,这就涉及到了大量的类型转换,在网上辗转几辄,总算有了点结果,特此跟大家分享.好了,不废话,下面细说. 方法/步骤     1. ...

随机推荐

  1. Vue.beforeEach is not a function报错

    使用导航守卫改变页面的title时报错了,明明在beaforeEach的参数中写了箭头函数也报下面的错误 后面发现我的问题在于直接导出了export.default new Router({--})中 ...

  2. DataGear 自定义数据可视化图表

    DataGear内置了很多常用的图表(折线图.柱状图.饼图.散点图.雷达图.地图等等),能满足大部分数据可视化需求,当内置图表无法满足时,则可以通过自定义图表或插件的方式,实现特定业务的数据可视化需求 ...

  3. MindSponge分子动力学模拟——使用MDAnalysis工具进行后分析(2024.02)

    技术背景 分子动力学模拟(Molecule Dynamics Simulation,MD),本质上是一门采样技术.通过配置力场参数.拓扑结构和积分器,对一个给定的体系不断的采样,最终得到一系列的轨迹. ...

  4. 【Azure 应用服务】App Service 部署txt静态文件和Jar包在不同目录中的解决办法

    问题描述 在Web App wwwroot (Windows系统中)根目录下如何部署一个jar包和一个text文件,让两个文件都能被访问? 解决办法 Jar包和Text文件都分别放置在两个单独的文件夹 ...

  5. 聊聊微信小程序的流式(stream)响应请求

    场景:类似ChatGPT的逐字显示效果. 流程:服务端我用Python的flask框架(向外提供API接口)实现,服务部署在replit上,Python调用azure 的chatgpt服务(需要申请) ...

  6. Jmeter 响应断言你知道多少?

    1 断言各组件介绍 Apply to:同上 测试字段: * 响应文本:响应体 * 响应代码:响应状态码 * 响应信息:状态码的消息 * 响应头:顾名思义就是响应头 * 请求头:顾名思义就是请求头 * ...

  7. C++ //vector 容器构造 vector赋值操作 vector 容量大小 vector插入和删除 //vector数据存取 vector互换容器 vector预留空间

    1 //vector 容器构造 vector赋值操作 vector 容量大小 vector插入和删除 2 //vector数据存取 vector互换容器 vector预留空间 3 #include&l ...

  8. 函数指针 int (*add)( )

    原文 首先它是一个指针,一个指向函数的指针,在内存空间中存放的是函数的地址: int Add(int x,int y) { return x+y; } int main() { printf(&quo ...

  9. vitepress 发布到 gitee上的build命令 自动设置base

    docs.vitepress\config.js const argv = require('minimist')(process.argv.slice(2)) const build = argv. ...

  10. python中记录打印的log模块logging的用法实例

    日志基础教程   日志是对软件执行时所发生事件的一种追踪方式.软件开发人员对他们的代码添加日志调用,借此来指示某事件的发生.一个事件通过一些包含变量数据的描述信息来描述(比如:每个事件发生时的数据都是 ...