Qt中的QString和QStringList常用方法

2023-11-05

/QString定义
QString s1 = "abc";
QString s2("hello");
//字符串连接
QString s = s1 + s2;

//组包
s = QString("a = %1, b = %2, c = %3").arg(250).arg("hello").arg(22.22);
qDebug()<<s;
//输出结果:a = 250, b = hello, c = 22.22

s = "a=250,b=hello,c=22.22";
//参数表示按逗号分隔, 拆分出第0段到第1段, 保存到tmp
QString tmp = s.section(",", 0, 1);
qDebug()<<"tmp = "<<tmp;
//输出结果:tmp="a=250,b=hello"

s = "a=250,b=hello,c=22.22";
//参数表示按逗号分隔, 拆分出第0段到第0段, 保存到tmp
QString tmp = s.section(",", 0, 0);
qDebug()<<"tmp = "<<tmp;
//输出结果:tmp="a=250"

tmp = tmp.section("=", 1, 1);
qDebug()<<"tmp="<<tmp;
//输出结果:tmp="250";

//QString转int
int a = tmp.toInt();
qDebug()<<"a="<<a;
//输出结果:a=250;

//int转QString组包方式转
tmp = QString("%1").arg(123);
qDebug()<<"tmp="<<tmp;
//输出结果:tmp="123"

//int转QString函数方式转
tmp = QString::number(234);

//char *转QString
const char * buf = "hello, world";
QString ss = buf;
qDebug()<<"ss = "<< ss;

//std::string转QString
string s = "hello, world"
QString ss = QString::fromStdString(s);
qDebug()<<"ss = "<< ss;

//std::wstring转QString
std::wstring wstr(L"你好, 世界");
QString ss = QString::fromStdWString(wstr);
qDebug()<<"ss = "<< ss;

//字符数组转QString
char buf2[100] = "hello world";
ss = buf2;
qDebug()<<"ss = "<<ss;

//QString转char *
ss = "hello abc";
//如果没有中文(即字符串为ASCII):
QByteArray tmp = ss.toLatin1();
char * buf3 = tmp.data();
//如果有中文(即字符串为unicode):
QByteArray tmp = ss.toLocal8Bit();
char * buf4 = tmp.data();

//替换QString中字符串
QString text("text-decoration: none");
text.replace("none", "underline");

//去除QString首尾的空格(包括'\t', '\n', '\v', '\f', '\r')
QString text("   text-decoration: none   ");
text = text.trimmed();

//字符移除操作
QString test = "hello,china";
QString tmp = test.remove(2, 4);    //从下标2的字符开始, 移除4个字符
qDebug() << "test = " << test;    //输出hechina
qDebug() << "tmp = " << tmp;    //输出hechina

//判断字符是否以某字符或字符串开始/结束(startsWith/endsWith)
QString test= "@192.168.0.1";
if(true == test.startsWith("@"))
{
     //do something
}

//判断QString是否空
QString().isEmpty();             // return true
QString("").isEmpty();          // return true
QString(" ").isEmpty();         // return false
QString("abc").isEmpty();    // return false

QString().isNull();              // return true
QString("").isNull();           // return false
QString(" ").isNull();          // return false
QString("abc").isNull();     // return false

//数字高位填0转为字符串
int tmp = 8;
QString strNew = QString("%1").arg(tmp, 4, 10, QLatin1Char('0'));  //4表示转为4位字符串, 10表示10进制. '0'表示填0
qDebug() << strNew;        // 打印结果: 0008

QStringList

//定义
QStringList list;
//添加字符串
list << "hello";
list << "world";
list.append("abc");
//例子2
QStringList chinaMonth;
        chinaMonth
            << QStringLiteral("正月")
            << QStringLiteral("二月")
            << QStringLiteral("三月")
            << QStringLiteral("四月")
            << QStringLiteral("五月")
            << QStringLiteral("六月")
            << QStringLiteral("七月")
            << QStringLiteral("八月")
            << QStringLiteral("九月")
            << QStringLiteral("十月")
            << QStringLiteral("冬月")
            << QStringLiteral("腊月")
            ;
//打印
qDebug()<< "list ="<< list;
//遍历
for(int i = 0; i< list.size();++i)
{
    QString tmp = list.at(i);
    qDebug()<<"tmp ="<< tmp; 
}

//使用QStringList拆分QString
QString str = "hello,world,abc,qt";
QStringList list2 = str.split(",");
qDebug()<<"list2="<<list2;
//输出:list2=("hello","world","abc","qt");

//判断QStringList中是否包含某个成员
bool b = list2.contains("123");

//移除QStringList中的成员
list2.removeOne("abc");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt中的QString和QStringList常用方法 的相关文章

  • replace(),IndexOf(),substring() ,lastIndexOf() ,split() ,pollFirst() ,pollFirst()

    replace pattern replacement 使用replacement替换pattern 如果pattern是字符串只替换第一个匹配项 如果pattern是正则表达式则替换每次匹配都要调用的回调函数 实例 String a 1
  • 面试题 08.08. 有重复字符串的排列组合--回溯算法

    LeetCode 面试题 08 08 有重复字符串的排列组合 有重复字符串的排列组合 编写一种方法 计算某字符串的所有排列组合 示例1 输入 S qqe 输出 eqq qeq qqe 示例2 输入 S ab 输出 ab ba 解法 回溯法
  • 【扩展KMP】POJ_3450| HDU_2328 Corporate Identity

    原题直通车 POJ 3450 Corporate Identity HDU 2328 Corporate Identity 题意概述 找出N个串中最长公共子串 分析 一 可以直接枚举其中一个串的所有字串 跟所有串进行匹配找到结果 二 用其中
  • java String(一)—— Java中的String类型

    一 需要理解的代码 import java lang reflect Array import java util ArrayList import java util Arrays import java util HashMap imp
  • Educoder---Java面向对象 - 集合框架(1)

    第一题 请仔细阅读右侧代码 根据方法内的提示 在Begin End区域内进行代码补充 创建ArrayList集合并且向集合中添加数据 具体要求如下 添加字符串类型数据 https www educoder net 添加double类型数据
  • 【python总结】python学习框架梳理

    目录 基础 注释与变量名等基本规则 关键字 操作符 数字 流程控制 序列 文本序列 字符串 二进制序列 字节 列表 元组 映射 字典 集合 函数 面向对象编程 错误和异常 模块 数据结构与算法 数组 字符串 链表 二分查找 排序 栈 队列
  • ACM-子串(字符串处理)

    问题描述 有一些由英文字符组成的大小写敏感的字符串 请写一个程序 找到一个最长的字符串 x 使得 对于已经给出的字符串中的任意一个 y x 或者是 y 的子串 或者 x 中的字符反序之后得到的新字符串是 y 的子串 输入数据 输入 输入的第
  • 第一章 pandas基础-练习题

    第一章 pandas基础 练习题 首先要导入对应的模块 import pandas as pd import numpy as np Ex1 口袋妖怪数据集 现有一份口袋妖怪的数据集 下面进行一些背景说明 代表全国图鉴编号 不同行存在相同数
  • C/C++2019秋招面试题集合01

    C C 2019秋招面试题集合01 8 19 腾讯 提前批 客户端开发 1 给定一个字符串数组 和一个子串 求字符串中是否存在子串 如果存在则返回首个匹配到的索引位置 否则 返回 1 不能调用库函数 例如 字符串数组 Integrity P
  • “字符串的展开”【题解】

    字符串的展开 的题目 题目 题目描述 在初赛普及组的 阅读程序写结果 的问题中 我们曾给出一个字符串展开的例子 如果在输入的字符串中 含有类似于 d h 或者 4 8 的字串 我们就把它当作一种简写 输出时 用连续递增的字母或数字串替代其中
  • 对字符串进行正则取子串

    题目是这样的 对一段HTML网页内容 解析出其中所有的键值对 比如其中type text type为属性 text为值 二者为一个键值对 内容如下
  • 知识点——初识java中File类

    1 1 什么是File类 SUN公司提供给开发者操作文件和文件夹的一个类对象 Java中万物皆对象 计算机中万物皆文件 获取File类有三种方式 Constructor 构造方法 File String pathName 根据对应的文件路径
  • 突如其来的C#重新学习(2)

    突如其来的C 重新学习 2 关于Main入口点的问题 Main在C 中不能单独声明 所以必须声明在同一个类中 而且必须声明静态方法 返回可以是void或者int 正常执行应当返回0 对于一个命名空间之内有很多的类的情况下 就可以手动选择从哪
  • 【Java数据类型】各种数据类型的相互转换总结

    基础数据类型包括 byte short int long float double char String boolean 在许多场合需要用到它们的相互转换 本文 将介绍几种转换方式 以及对转换方式的原理简要介绍 文章目录 法则与特性 字节
  • js 字符串与二维数组间的转化

    1 字符串转二维数组 var a 1 2 3 4 5 a b c d e y1 y2 y3 y4 y5 var str eval a alert str 0 3 结果 4 2 二维数组转字符串 var b 1 2 a b function
  • jFinal框架下controller接参

    一 表单参数 1 前端 contentType x www form urlencoded 2 apipost接口测试 3 controller接参 1 注解 getPara获取参数 2 注解 默认参数 若方法的参数名为注解名 则jFina
  • 判断字符串是否为数字

    不迷迷糊糊 直接整代码 判断字符串是否是数字 判断是否为数字 是 返回true param str return public static boolean isNumeric final String str null or empty
  • Python基础知识(四):一文看懂列表、元组和字符串操作

    序列 序列是具有索引和切片能力的集合 列表 元组和字符串具有通过索引访问某个具体的值 或通过切片返回一段切片的能力 列表 元组 字符串都属于序列 1 列表 列表 List 是Python中非常重要的内置数据类型 列表由一系列元素组成 所有的
  • 力扣 942. 增减字符串匹配 双指针解法C++

    给定只含 I 增大 或 D 减小 的字符串 S 令 N S length 返回 0 1 N 的任意排列 A 使得对于所有 i 0 N 1 都有 如果 S i I 那么 A i lt A i 1 如果 S i D 那么 A i gt A i
  • Python编程中的for循环语句学习教程

    本文来源于公众号 csdn2299 喜欢可以关注公众号 程序员学府 这篇文章主要介绍了Python编程中的for循环语句学习教程 是Python入门学习中的基础知识 需要的朋友可以参考下 Python for循环可以遍历任何序列的项目 如一

随机推荐

  • 顺序表如何插入元素? 看这里!!

    设计算法 将一个元素插入到有序的顺序表中 使顺序表仍有序 并编写主函数测试算法 1 算法 将一个顺序表利用冒泡排序的方法从小到大排序 将要插入的数据x与顺序表的元素一一进行比较 如果存在相等的话 停止插入 如果x位于顺序表某两个相邻的元素a
  • 【Nginx系列】- 源码安装依赖环境解释说明

    Nginx源码安装会依赖一些必要的环境 如下 GCC编译器 Nginx是使用C语言编写的程序 因此想要运行Nginx就需要安装一个编译工具 GCC就是一个开源的编译器集合 用于处理各种各样的语言 其中就包含了C语言 使用如下命令来安装与验证
  • 华为od机试 C++ 【切割字符串】

    题目 给定一个由小写字母组成的字符串 请找出两个位置 将字符串分为三部分 这三部分的总和应该是相同的 其中每部分的总和是其字符的ASCII码值的总和 注意 这两个位置的字符不包括在这三部分内 如果你找到了这两个位置 请输出它们的位置 如果没
  • 分类方法归结为哪几种类型

    从使用技术上来分 可以分为四种类型 基于距离的分类方法 决策树分类方法 贝叶斯分类方法和规则归纳方法 基于距离的分类方法主要有最邻近方法 决策树方法有ID3 C4 5 VFDT等 贝叶斯方法包括朴素贝叶斯方法和EM算法 规则归纳方法包括AQ
  • 比较两个list是否相等

    比较两个list是否相等 public booelan equalsList List
  • spring-cloud-alibaba 0基础环境 从0开始搭建(最详细)

    这次用到的spring组件nacos fegin gateway 完全适合生产开发 1 所用版本 1 准备 springcloud alibaba 2021 0 4 2 springboot 2 7 2 release 3 springcl
  • 明明启动了三个DataNode,hadoop集群只显示一个datanode监控呢

    在虚拟机里用jps查看到了三个DataNode进程但是在9870页面的DataNode监控下只显示一个DataNode 这是为什么 jps进程 9870的DataNode information 查阅资料 在这个hadoop目录下有一个 o
  • 各版本SQL Server 通过JDBC连接的URL

    最新JDBC驱动下载地址 JDBC driver 6 4 for SQL Server 由图中可以看出 最低仅支持JRE7和SQL Server 2008 需要其他版本请自行查找 1 SQL SERVER 2000 JDBC驱动程序 msb
  • (ECCV 2022) Dense Teacher

    DenseTeacher Dense Pseudo Label for Semi supervised Object Detection https github com Megvii BaseDetection DenseTeacher
  • vscode 禁止自动排序 C++ 头文件

    vscode 禁止自动排序 C 头文件 对 C 头文件排序大部分时间是好的 但是在少数情况下 如果头文件之间的相互依赖关系没有解决 那么对头文件排序就会出现问题 原本能够编译通过的文件 经过自动排序头文件后边的不能编译了 取消自动排序头文件
  • PE 文件结构解析

    PE 文件格式由一个线性的数据流组成 由一个DOS 头开始 接着是一个PE 文件头 这些之后是所偶的区块部 包含重分配信息 符号表信息以及字符串表数据 PE 文件结构 如下图所示 文件被划分为四大部分 包含 DOS 部分 PE 文件头 节表
  • 2018年python基础面试题总结(持续更新)

    duoniu cm 1 写一个冒泡排序 def Bubblesort list for i in range 0 len list 1 for j in range 0 len list 1 i list j gt list j 1 lis
  • 软件建模分析与设计 学习日志(2)用例图 Use Case

    1 用例图的基本概念 定义 由Actor 参与者 Use Case 用例 和其间的关系构成的用于描述系统功能的动态视图 主要作用 描述Actor与Use Case之间的关系 帮助开放人员可视化地了解系统的功能 所以用例图是需求分析中的产物
  • spring boot 配置文件

    目录 配置文件作用 配置文件的分类 配置文件格式 properties properties配置文件基本语法 读取单个的配置文件 properties 缺点 yml 特点 基本语法 yml单双引号 yml对象配置读取 yml中集合的读与写
  • LDO基础知识 - 噪声来源以及解决方案

    在一篇LDO基础知识博文中 我讨论了使用低压差稳压器 LDO 过滤因开关模式电源导致的纹波电压 然而 这不是获得净化直流电源唯一要考虑的事情 因为LDO是电子设备 它们自身也会生成一定数量的噪声 选择使用低噪声LDO和采取步骤减少内部噪声
  • webpack打包font时的路径问题

    使用Webpack打包Build时 对于 woff woff2 eot ttf otf 这些类型的font文件路径有问题 一般常见的错误路径就是 static css static css fonts 出现这样的问题 大多数就是配置上的问题
  • jupyter notebook运行没反应_配置服务器上Jupyter

    由于本人最近由于一些事情 总是不能有大块时间打代码 但是有时候一些灵感又需要写一些小品级的代码来记录一下 所以我决定采用 阿里云服务器 jupyter notebook iPad 的方案解决我的问题 原因如下 云服务器可以一直运行 让代码慢
  • dual microphone wind noise reduction

    coherence weighting use magnitude squared coherence MSC supression gain limit gain function coherence based wind noise e
  • 报错: DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80070003 ()

    参考了网上的种种建议 说一下自己是怎么解决的 测试代码 音频播放列表 QMediaPlaylist mdPlayList mdPlayList new QMediaPlaylist this 注意这里使用QUrl fromLocalFile
  • Qt中的QString和QStringList常用方法

    QString定义 QString s1 abc QString s2 hello 字符串连接 QString s s1 s2 组包 s QString a 1 b 2 c 3 arg 250 arg hello arg 22 22 qDe