一、拼接字符串

拼接字符串有两种方法: +=  、  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. ElkStack-MACOS搭建

    目录 简介 Elasticsearch Logstash/Filebeats Kibana 架构流程 安装配置 版本 先决条件 brew Elasticsearch mac安装elasticsearc ...

  2. 【Filament】基于物理的光照(PBR)

    1 前言 ​ 自定义Blinn Phong光照模型中实现了基础的自定义光照,与现实的光照还是有些差别,本文将实现更逼真的光照效果,即基于物理的光照(PBR). ​ 读者如果对 Filament 不太熟 ...

  3. [C++] 进程注入dll版

    目录 前言 前提 原理 代码 一些问题 前言 这几天在弄进程注入的事情,一直做不出来直接的进程注入,也就是不要dll的注入.因为dll注入据说容易触发杀软,但是弄了两天没弄出来.代码明明不报错,目标进 ...

  4. 一: Mysql字符集问题

    ## Mysql 字符集问题 1 修改MySQL5.7字符集 1.1 修改步骤 在MySQL 8.0版本之前,默认字符集为 latin1 ,utf8字符集指向的是 utf8mb3 .网站开发人员在数据 ...

  5. Java 重写小练习

    1 package com.bytezero.inherit3; 2 3 public class CylinderTest 4 { 5 public static void main(String[ ...

  6. TypeScript实践总结

    下文将TypeScript简称ts 一.为什么要学 1.1 减少bug,提高质量 强语言,语法等方面异常,编译阶段"提前"报错 支持面向对象,软件设计与工程化更为成熟,更容易做单元 ...

  7. Linux 系统编程从入门到进阶 学习指南

    引言 大家好,我是小康 ,今天我们来学习一下 Linux 系统编程相关的知识.Linux 系统编程是连接高级语言和硬件的桥梁,它对深入理解计算机系统至关重要.无论你是打算构建高性能服务器还是开发嵌入式 ...

  8. Tomcat 系列

    Tomcat 系列 目录 Tomcat 系列 一. 基本概念 1.1 java jdk 概念 1.2 jsp.servlet是什么 1.3 web服务器.web容器.应用程序服务器 1.4 tomca ...

  9. Nexus npm 搭建私有仓库 很好很强大 nrm electronjs

    Nexus npm 搭建私有仓库 很好很强大 https://www.jianshu.com/p/e437d8e694a0 主要想到这个包的话比较大 所以要是有个私有仓库 就方便许多 https:// ...

  10. 被 两个 vetur 玩惨了的几天,可不是vue-helper的锅

    最近由idea 转 vscode,因为 由原来一个项目变成7个项目了,2G内存不够看. 然后发现点击组件跳转不好使,装个vue-helper也是有一部分不好使. 下载vue-helper源码一通查,发 ...