【库函数】QT 中QString字符串的操作
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字符串的操作的更多相关文章
- Qt 中QString 字符串操作:连接、组合、替换、去掉空白字符
Qt中的字符串类 QString类 保存了16位Unicode值,提供了丰富的操作.查询和转换等函数. QString 字符串有如下几个操作符: (1) "+" 用于组合两个字符串 ...
- 第11课 Qt中的字符串类
1. 历史遗留问题和解决方案 (1)历史遗留问题 ①C语言不支持真正意义上的字符串 ②C语言用字符数组和一组函数实现字符串操作 ③C语言不支持自定义类型,因此无法获得字符串类型 (2)解决方案 ①从C ...
- Qt中与文件目录相关操作
一.与文件目录操作有关操作. Qt中与文件目录相关的操作在QDir中,需加入#include <QDir>语句. QDir::drives()是列出电脑根目录下的所有目录,返回的是QFil ...
- php大力力 [024节]PHP中的字符串连接操作(2015-08-27)
2015-08-27 php大力力024.PHP中的字符串连接操作 PHP中的字符串连接操作 阅读:次 时间:2012-03-25 PHP字符串的连接的简单实例 时间:2013-12-30 很多 ...
- javascript中对字符串的操作总结
原文:javascript中对字符串的操作总结 没听过一句话吗?程序员的世界,不处理字符串就是处理数组.这是群里的一位前辈和我说的,显然这和我之前理解的DOM是javascript的核心的不同的,看了 ...
- 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中的字符串处理函数
Fn 1 : arg 这个函数的具体声明不写了,它有20个重载,典型的示例代码如下: 1: #include <QtCore/QCoreApplication> 2: #include & ...
- Qt中 QString 和int, char等的“相互”转换
转载:http://blog.csdn.net/ei__nino/article/details/7297791 Qt中 int ,float ,double转换为QString 有两种方法 1.使用 ...
- Qt中 QString 和int, char等的“相互”转换,关键是QString.toLocal8Bit().data();
Qt中 int ,float ,double转换为QString 有两种方法 1.使用 QString::number(); 如: long a = 63; QString s = QString:: ...
随机推荐
- Java开发者的Python快速进修指南:异常捕获
在之前的学习中,我们已经讲解了函数和控制流等基本概念.然而,在接触实际业务时,你会发现异常捕获也是必不可少的一部分,因为在Java编程中,异常处理是不可或缺的.Python的异常捕获与Java的异常捕 ...
- 关于一类最优解存在长度为 $k$ 的循环节的问题
灵感来源 问题形式:给定长度为 \(n\) 的序列,要求选出一些位置,使这些位置满足限制条件 \(T\),其中 \(T\) 可以表述为一个长度为 \(k\) 的环满足条件 \(T'\),选出第 \(i ...
- 手撕Vue-Router-初始化路由信息
前言 经过上一节课的学习,我们已经完成了提取我们想要的路由信息数据格式,提取完毕了之后,接下来我们该干什么,接下来需要做的步骤就是监听路由的变化,保存当前的路由. 那么就会遇到几个问题,就是怎么监听, ...
- 【VMware NSX-T】在vCenter内直接将Manager设备删除后,ESXi上还遗留N-VDS交换机及网卡被占用等问题的解决方法。
由于之前在实验平台安装了NSX-T的测试环境,但是由于太忙了没怎么测试,后来实验环境出了点小问题,索性就将上面所有虚拟机给清空了.但是没想到上面遗留了NSX-T上创建的N-VDS交换机,还占用了服务器 ...
- 【公告】luogu blog (daiyulong20120222) 即将迁移!
\[\huge\text{luogu blog (daiyulong20120222) 即将迁移到 cnblogs!}\\ \] \[\huge\color{blue}\text{https://ww ...
- Python 中的单下划线和双下划线
哈喽大家好,我是咸鱼 当我们在学习 Python 的时候,可能会经常遇到单下划线 _ 和双下划线 __ 这两种命名方式 单下划线 _ 和双下划线 __ 不仅仅是只是一种简单的命名习惯,它们在 Pyth ...
- 【Javaweb】做一个房产信息管理系统二
由于我还不太熟练用sql语句写数据库,所以直接用navicate了 我们需要新建四个数据表: adimin(超级管理员信息) customer(顾客) property(房产信息) realestat ...
- adb shell getprop 获取系统属性
adb shell getprop 以华为p30为例: [gsm.default.apn]: [gsm.defaultpdpcontext.active]: true [gsm.dualcards.s ...
- 从零玩转设计模式之建造者模式-jianzaozhemoshi
title: 从零玩转设计模式之建造者模式 date: 2022-12-08 18:15:30.898 updated: 2022-12-23 15:35:58.428 url: https://ww ...
- pwd详解
linux下pwd 命令详解 Linux中用 pwd 命令来查看"当前工作目录"的完整路径. 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录. 在不太确定当前位置时,就 ...