Qt QString使用
QString则使用隐式共享,又称回写复制。当两个对象共享同一份数据时,数据内容不改变,则不进行数据的复制,即将深拷贝和浅拷贝结合起来使用。
QString使用时在连续的内存块上保存字符串,QString内存分配策略如下:
- 范围0~20:每次4个字符。
- 范围20~4084:每次2倍。
- 范围4084~∞:每次2048个字符。
+:连接字符串
QString str1 = "I ";
QString str2 = "LOVE ";
QString str3 = "YOU";
QString str4 = str1 + str2 + str3; //I LOVE YOU
append():追加字符串
QString str1 = "Hello ";
QString str2 = "World";
str1.append(str2);//Hello World
str1.append("!");//Hello World !
sprintf():赋值/连接/追加字符串
QString str;
str.sprintf("%s","Nice to ");//str = Nice to
str.sprintf("%s %s","Nice to ", "meet you");//str = Nice to meet you
arg():同上
QString str;
str = QString("My name is %1, I'm %2 old.").arg("Paul").arg("17").
//str = My name is Paul, I'm 17 old.
insert():特定位置插入字符串
QString str = "This is test code.";
str.insert(8,"not ");
//str = This is not test code.
prepend():开头插入字符串
QString str = "This is test code.";
str.prepend("Oh! ");
//str = Oh! This is test code.
replace():替换原字符串某些字符
QString str = "This is test code.";
str.replace(13,5,"data.");
//str = This is test data.
trimmed():移除字符串两端的空白字符
QString str = " This is test code. ";
QString str1 = str.trimmed();
//str = This is test code.
simplified():移除两端空白字符,使用单个空格字符“ ”替代
QString str = " This is test code. ";
QString str1 = str.simplified();
//str = " This is test code. "
startsWith():检查字符串是否以某个字符串开头,Qt::CaseSensitive指定
QString str = "This is test code.";
bool result = str.startsWith("This",Qt::CaseSensitive);
//result = true
QString str = "This is test code.";
bool result = str.startsWith("is",Qt::CaseSensitive);
//result = false
endsWith():功能同上,检查结尾。
QString str = "This is test code.";
bool result = str.endsWith("code.",Qt::CaseSensitive);
//result = true
QString str = "This is test code.";
bool result = str.endsWith("is",Qt::CaseSensitive);
//result = false
contains():判断一个字符串是否出现过。
QString str = "This is test code.";
bool result = str.contains("code.",Qt::CaseSensitive);
//result = true
QString str = "This is test code.";
bool result = str.contains("what",Qt::CaseSensitive);
//result = false
localeAwareCompare(const QString&, const QString&):比较两个字符串,前小于后返回负值,相等返回0,大于返回正值。此比较时基于平台相关的本地字符集。
qDebug()<<"Result:"<<QString::localeAwareCompare("good","bad");
//Result: 1
compare((const QString&, const QString&,Qt::CaseSensitivity):指定是否进行大小写比较,用法同上。
<:比较是否小于,是则返回true。
<=:比较是否小于等于,是则返回true。
==:比较是否相等,是则返回true。
>=:比较是否大于等于,是则返回true。
>:比较是否大于,是则返回true。
......
toInt():转整型。
toDouble():转双精度浮点型。
toFloat():转浮点型。
toLong():转长整型。
toLongLong():转64位长整型。
......
QByteArray():QString会返回一个const char *的QByteArray,既可以存储原始字节,也可以存储以“\0”结尾的8位字符串。
QString str = "I'm good man";
QByteArray ba = str.toAscii();
ba.append("yes,very good");
toAscii():返回一个ASCII编码的8位字符串。
toLatin1():返回一个Latin-1(ISO8859-1)编码的8位字符串。
toUtf8():返回一个UTF-8编码的8位字符串,UTF-8是ASCII码的超集,它支持整个Unicode字符集。
toLocal8Bit():返回一个系统本地编码的8位字符串。
isEmpty():检查是否空字符串。
isNull():检查是否为空。
QString().isNull; //true
Qstring().isEmpty(); //true
QString("").isNull; //false
QString("").isEmpty(); //true
Qt QString使用相关推荐
- Qt QString 中文 char* UTF-8 QByteArray QTextCodec unicode gb2312 GBK 乱码与转码问题
代码如下:如果不不设全局的字符集是utf-8,那么网上一般的方法是可以转的.如下程序中 #define DD 1的情况下:但是如果设置了全局的utf-8,再用以前的方法: QByteArray ba= ...
- Qt QString 与 const char* 类型的转换
Qt QString 与 const char* 类型的转换QString DATA; std::string str = DATA.toStdString(); const char* ch = s ...
- QT QString含中文字符串转16位Unicode字符串
QT QString含中文字符串转16位Unicode字符串 近期做串口编程时遇到了个问题,折腾了好大会,终于弄明白了,特此分享! //目标:新浪微博->0465b06d6a5fae535a Q ...
- Qt QString 与char* 相互转换
Qt下,字符串都是使用QString,但是很多时候我们需要的char* 这样的参数. 下面介绍两种转换的方法: 1.QString转为QByteArray然后再转为char* QString Qstr ...
- Qt QString().sprintf(“%x“)解决打印无符号十六位数
场景: 最近使用海康工业相机的SDK进行二次开发,打印出来的函数返回错误码总是怪怪的,和开发手册里的对不上号,其实就是无符号十六位被Qt默认转成了int型,然后传到QString 代码: 在MFC的D ...
- Qt QString 增、删、改、查、格式化等常用方法总结
目录 一.QString 格式化 之 arg(): 二.字符串拼接操作 三.字符串部分删除 四.字符串替换 五.字符串查找 六.其他,一些常用的方法 一.QString 格式化 之 arg(): 1. ...
- Qt QString类及常用函数功能详解
QString 是 Qt 编程中常用的类,除了用作数字量的输入输出之外,QString 还有很多其他功能,熟悉这些常见的功能,有助于灵活地实现字符串处理功能. QString 存储字符串釆用的是 Un ...
- Qt QString详解
1.QString 常用方法 //append 在后面添加字符串,prepend在前面添加字符串QString s1 = "张";QString s2 = "三" ...
- QT QString转16进制
QString temHex_len="1234"; QString temHex_crc="6677"; qDebug("temHex_crc = ...
最新文章
- HTML5 canvas 在线画笔绘图工具(三)
- python大作业思路_python大作业
- ECCV 2018 | 腾讯AI Lab提出视频再定位任务,准确定位相关视频内容
- SpringBoot 对象输出
- Linux中10个有用的命令行补齐命令
- OpenGL基础30:模板测试
- linux 清空history以及记录原理
- shell中引号的应用
- java添加录音,大家说说java程序里怎么插入视频和音频啊
- 解决libxml2不支持中文的问题
- 如何解决样本不均衡问题
- 突破淘宝对于selenium检测
- 嵌入式uml绘图工具_新的可嵌入制图工件
- 利用Udacity模拟器实现自己的自动驾驶小车
- httpwatch使用
- 职等你来 | UE/UX交互设计师(15k);时钟AE工程师;数字IC验证工程师(薪资开放)
- 三菱q系列plc连接电脑步骤_三菱Q系列PLC以太网通信设置方法
- 使用dd命令在Linux下创建大文件,批量大小文件生成方法
- 天嵌科技恭祝大家元宵节快乐
- linux创建ps格式文件怎么打开,ps文件扩展名,ps文件怎么打开?
热门文章
- android 线程互斥锁,线程锁(互斥锁Mutex)及递归锁
- java多线程互斥锁_浅谈Java多线程互斥锁
- 重学数据结构与算法系列:链表及其应用
- netcore vue elementui自动代码生成器
- 简述计算机在液体成型中的应用,计算机技术在3D打印材料成型过程中的应用
- 华为:配置交换机console口验证
- gitlab-runner certificate signed by unknown authority
- 简要聊聊UNIX,MINIX,LINUX,BSD的区别与特质
- NR HARQ (四)dynamic codebook
- Android开发真等于废人?再不刷题就晚了!