QString是QT提供的字符串类,相应的也就提供了很多很方便对字符串的处理方法。这里把这些对字符串的操作做一个整理和总结。

1. 将一个字符串追加到另一个字符串的末尾

QString str1 = "hello ";
QString str2 = "world";
str1.append(str2); // str1 = "hello world"
str1.append(" !"); // str1 = "hello world !"
// 对字符串直接 + 另一个字符串也可以实现,但是不对原本的字符串进行操作
QString str3 = str1 + str2 + " !"; // str3 = "hello world !" str1 = "hello "

2. 从字符串中查找某个字符串

QString x = "sticky question";
QString y = "sti";
x.indexOf(y); // 返回0
// 函数indexOf()会返回要查找的字符串在字符串中第一次出现的位置
// 如果没有要查找的字符串,返回-1

3. 用某个字符填满字符串

QString str = "Hello";
str.fill('x'); // str == "xxxxx"
str.fill('A', 2); // str == "AA"

4. 判断字符串是否为空

QString().isEmpty();            // 返回 true
QString("").isEmpty(); // 返回 true
QString(" ").isEmpty(); // 返回 false
QString("abc").isEmpty(); // 返回 false

5. 判断字符串是否存在

QString().isNull();             // 返回 true
QString("").isNull(); // 返回 false
QString("abc").isNull(); // 返回 false

6. 从左向右截取字符串

QString str = "Hello World !";
QString str1 = str.left(5); // str1 = "Hello"

7. 从中间截取字符串

QString str = "I love C++!";
QString str1 = str.mid(2, 4); // str1 == "love"
QString str2 = str.mid(2); // str2 == "love C++!"

8. 截取字符串中最右边几个字符

QString str = "I love C++!";
QString str1 = str.right(4); // str = I love C++! str1 = "C++!"

9. 删除字符串中的最后几个字符

QString str = "Hello World !";
str.chop(8); // str = "Hello"

10. 删除字符串中间某个字符

QString str = "Hello World!";
str.remove(5, 6); // str = "Hello!"

11. 指定位置插入字符串

QString str = "Hello!";
str.insert(5, QString(" World")); // str = "Hello World!"

12. 用几个字符替换字符串中的几个字符

QString x = "Say yes!";
QString y = "no";
x.replace(4, 3, y); // x = "Say no!"
x.replace("yes", "no"); // x = "Say no!"

13.字符串补零到指定位

QString str = "A6";
//如果要把str补全到8位,空位用0补全
QString str1 = QString("%1").arg(str, 8, QLatin1Char('0')); //str1 = "000000A6"
//arg里第一个参数是要补全的字符串,第二个参数是要补全到的位数,第三个参数是用什么字符补全,可以不是0的其他字符

14.整型十进制转为十六进制字符串并补零到指定位

int n = 66;
//如果要把n转换为十六进制并补全到8位
QString str = QString("%1").arg(n, 8, 16, QLatin1Char('0')); // str = "00000042"
//arg里第一个参数是十进制整型的数,第二个参数是要补全到的位数,第三个参数是要转换的进制,可以是十六进制也可以是十进制
//第四个参数是用什么字符补全,可以不是0的其他字符

15. 以某个字符切割字符串

QString csv = "forename,middlename,surname,phone";
QString path = "/usr/local/bin/myapp"; //section()会把字符串以第一个参数的符号切割分成数个字符串,后面两个参数是得到的字符串的开始和结束的位置
QString str;
str = csv.section(',', 2, 2); // str = "surname"
str = path.section('/', 3, 3); // str = "bin"
str = path.section('/', 3, 4); // str = "bin/myapp"
str = path.section('/', 3, 3, QString::SectionSkipEmpty); // str = "myapp"

16. 以某个字符切割字符串另一种方法

QString str = "a,,b,c";

QStringList list1 = str.split(',');
// list1: [ "a", "", "b", "c" ] QStringList list2 = str.split(',', QString::SkipEmptyParts);
// list2: [ "a", "b", "c" ]

17. 检查字符串是否以某个字符串开头或结尾

QString str = "http://www.baidu.com";
str.startsWith("http:"); // 返回true
str.endsWith("cn"); // 返回false
//这个方法比left()和right()要简单快速,通常用来检查路径或者网址

18. 比较两个字符串是否相等

QString str1 = "xxx";
QString str2 = "XXX"; //localeAwareCompare()会比较两个参数的大小,如果str1小于str2,返回小于0的数,等于返回0,大于返回大于0的数
QString::localeAwareCompare(str1, str2) // 返回 -1 //localeAwareCompare()的比较区分大小写,想要不区分大小写,可以使用toLower()或toUpper()使字符串全变成小写或大写
if(QString::localeAwareCompare(str1.toUpper(), str2) == 0)
{
qDebug() << "str1和str2相等"; // 返回0,输出:str1和str2相等
}

【库函数】QT 中QString字符串的操作的更多相关文章

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

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

  2. 第11课 Qt中的字符串类

    1. 历史遗留问题和解决方案 (1)历史遗留问题 ①C语言不支持真正意义上的字符串 ②C语言用字符数组和一组函数实现字符串操作 ③C语言不支持自定义类型,因此无法获得字符串类型 (2)解决方案 ①从C ...

  3. Qt中与文件目录相关操作

    一.与文件目录操作有关操作. Qt中与文件目录相关的操作在QDir中,需加入#include <QDir>语句. QDir::drives()是列出电脑根目录下的所有目录,返回的是QFil ...

  4. php大力力 [024节]PHP中的字符串连接操作(2015-08-27)

    2015-08-27 php大力力024.PHP中的字符串连接操作 PHP中的字符串连接操作  阅读:次   时间:2012-03-25 PHP字符串的连接的简单实例 时间:2013-12-30 很多 ...

  5. javascript中对字符串的操作总结

    原文:javascript中对字符串的操作总结 没听过一句话吗?程序员的世界,不处理字符串就是处理数组.这是群里的一位前辈和我说的,显然这和我之前理解的DOM是javascript的核心的不同的,看了 ...

  6. 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 ...

  7. 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 ...

  8. QT中的字符串处理函数

    Fn 1 : arg 这个函数的具体声明不写了,它有20个重载,典型的示例代码如下: 1: #include <QtCore/QCoreApplication> 2: #include & ...

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

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

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

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

随机推荐

  1. 手把手教Electron+vue,打包vue项目,打包成桌面程序。

    1.现如今前端框架数不胜数,尤其是angular.vue吸引一大批前端开发者,在这个高新技术快速崛起的时代,自然少不了各种框架的结合使用.接下来是介绍electron+vue的结合使用. 2.Elec ...

  2. 黑客玩具入门——4、漏洞扫描与Metasploit

    1.Legion漏洞扫描分析工具 Legion是Sparta的一个分支,它是一个开源的.易于使用的.超级可扩展的.半自动的网络渗透测试框架.它是一款Kali Linux系统默认集成的Python GU ...

  3. 在模态窗口中控制窗口的隐藏和显示(.NET)

    如果你创建了模态窗口,虽然一些API,例如Editor.GetSelection(),可以自动隐藏模式对话框,但如果从模态窗口出发与编辑器(编辑器指的模型空间,即你绘图的窗口)交互, 它会在GetSe ...

  4. 我用 AI 写的《JavaScript 工程师的 Python 指南》电子书发布啦!

    关于本书 你好,我是 luckrnx09,一名靠 React 恰饭的前端工程师,很高兴向你介绍我的第一本开源电子书<JavaScript 工程师的 Python 指南>. 本书的内容完全免 ...

  5. 吉特日化MES-业务架构第一版图

  6. CH395+EMQX实现MQTT应用(Windows系统)

    目录: 1.MQTT协议 1.1简介 1.2特性 1.3实现方式 1.4数据包结构 2.EMQX具体操作步骤 3.代码说明 4.工程链接 MQTT协议 1.MQTT简介 MQTT是一种基于 发布/订阅 ...

  7. 华企盾DSC控制台操作卡顿如何解决

    解决方法: 修改注册表: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows 的 USERProcessHa ...

  8. 【scikit-learn基础】--『监督学习』之 支持向量机回归

    在机器学习中,支持向量机(Support Vector Machine)算法既可以用于回归问题,也可以用于分类问题. 支持向量机(SVM)算法的历史可以追溯到1963年,当时前苏联统计学家弗拉基米尔· ...

  9. IO流小结图片

  10. 8、Flutter Paddiing组件

    Padding组件处理容器与子元素之间的间距. class MyApp extends StatelessWidget { const MyApp({super.key}); @override Wi ...