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. Intellij IDEA开发Scala程序

    前言 Intellij IDEA是一款功能强大的集成开发环境(IDE),可用于开发各种编程语言,包括Scala.Scala是一种功能强大的静态类型编程语言,它结合了面向对象和函数式编程的特性. 本文我 ...

  2. 图片转换网站推荐(BMP格式作业)

    做选做作业时我发现我的PS不能保存为BMP格式 只好网上搜索,发现了一个不错的免费网站 图片转换

  3. 从0到1,手把手带你开发截图工具ScreenCap------001实现基本的截图功能

    ScreenCap---Version:001 说明 从0到1,手把手带你开发windows端的截屏软件ScreenCap 当前版本:ScreenCap---001 支持全屏截图 支持鼠标拖动截图区域 ...

  4. MySQL笔记01: MySQL入门_1.1 MySQL概述

    1.1 MySQL概述 MySQL是一个关系数据库管理系统(Relational DataBase Management System,RDBMS).它是一个程序,可以存储大量的种类繁多的数据,并且提 ...

  5. [ABC309G] Ban Permutation

    Problem Statement Find the number, modulo $998244353$, of permutations $P=(P_1,P_2,\dots,P_N)$ of $( ...

  6. 1、GO语言入门-环境准备

    1.Windows开发环境准备 (1)Golang编译器下载 golang中文网:https://studygolang.com/dl 或者:https://go.dev/dl/ (2)下载解压,找到 ...

  7. .NET周刊【12月第1期 2023-12-06】

    国内文章 .NET 与 OpenEuler 共展翅,昇腾九万里 https://www.cnblogs.com/shanyou/p/17858385.html 本文介绍了openEuler操作系统,它 ...

  8. python学习笔记:python的字符串拼接效率分析

    问题的起因是因为在做LeetCode5714题的时候,对于字符串拼接使用了 ans = ans+s[i] 提交后超时了,改成 ans+=s[i] 就可以通过了,而且用c++好像也有这个问题,在此记录一 ...

  9. flask中使用pyjwt

    **pyjwt使用教程: ** https://pyjwt.readthedocs.io/en/stable/ 使用案例 import datetime from flask import Flask ...

  10. 数字孪生与GIS的结合:创新灾害预防管理的未来

    近年来,全球频发的自然灾害给人们的生命和财产安全带来了巨大威胁,灾害预防管理成为当务之急.然而,随着数字孪生技术和GIS的迅猛发展,一种全新的解决方案正在崭露头角.数字孪生与GIS的结合,为灾害预防管 ...