Qt QString类及常用函数功能详解
QString 是 Qt 编程中常用的类,除了用作数字量的输入输出之外,QString 还有很多其他功能,熟悉这些常见的功能,有助于灵活地实现字符串处理功能。
QString 存储字符串釆用的是 Unicode 码,每一个字符是一个 16 位的 QChar,而不是 8 位的 char,所以 QString 处理中文字符没有问题,而且一个汉字算作是一个字符。
append() 和 prepend()
append() 在字符串的后面添加字符串,prepend() 在字符串的前面添加字符串,如:
QString str1="卖",str2="拐";
QString str3=str1;
str1.append (str2) ; //str1="卖拐"
str3.prepend (str2) ; //str3="拐卖"
oUpper() 和 toLower()
toUpper() 将字符串内的字母全部转换为大写形式,toLower() 将字母全部转换为小写形式,如:
QString str1="Hello, World", str2;
str2=str1.toUpper(); //str1="HELLO,WORLD"
str2=str1.toLower(); //str1="hello, world"
count()、size() 和 length()
count()、size() 和 length() 都返回字符串的字符个数,这 3 个函数是相同的,但是要注意,字符串中如果有汉字,一个汉字算一个字符。
QString str1="NI 好"
N=str1.count() //N=3
N=str1.size() //N=3
N=str1.length() //N=3
trimmed() 和 simplified()
trimmed() 去掉字符串首尾的空格,simplified() 不仅去掉首尾的空格,中间连续的空格也用一个空格替换。
QString str1=" Are you OK? ", str2;
str2=str1.trimmed () ; //str1="Are you OK? "
str2=str1.simplified(); //str1="Are you OK?"
indexOf () 和 lastIndexOf ()
indexOf() 函数的原型为:
int indexOf (const QString &str, int from = , Qt::CaseSensitivity cs = Qt::CaseSensitive) const
其功能是在自身字符串内查找参数字符串 str 出现的位置,参数 from 是幵始查找的位置,Qt::CaseSensitivity cs 参数指定是否区分大小写。
lastIndexOf() 函数则是查找某个字符串最后出现的位置。
QString str1="G:\Qt5Book\QT5.9Study\qw.cpp";
N=str1.indexOf("5.9"); // N=13
N=str1.lastIndexOf("\\"); //N=21
提示,"\" 是转义字符,如果要查找 "\",需要输入 "\\"。
isNull() 和 isEmpty()
两个函数都判读字符串是否为空,但是稍有差别。如果一个空字符串,只有“\0”,isNull() 返回 false,而 isEmpty() 返回 true;只有未赋值的字符串,isNull() 才返回 true。
QString str1, str2="";
N=str1.isNull () ; // N=true 未赋值字符串变量
N=str2.isNull () ; // N=false 只有"\0"的字符串,也不是 Null
N=str1.isEmpty(); // N=true
N=str2.isEmpty(); // N=true
QString 只要赋值,就在字符串的末尾自动加上 "\0",所以,如果只是要判断字符串内容是否为空,常用 isEmpty()。
contains()
判断字符串内是否包含某个字符串,可指定是否区分大小写。
QString str1="G:\Qt5Book\QT5.9Study\qw.cpp";
N=str1.contains (".cpp", Qt::CaseInsensitive) ; // N=true,不区分大小写
N=str1.contains (".CPP", Qt::CaseSensitive) ; // N=false,区分大小写
endsWith() 和 startsWith()
startsWith() 判断是否以某个字符串幵头,endsWith() 判断是否以某个字符串结束。
QString str1=MG:\Qt5Book\QT5.9Study\qw.cpp";
N=str1.endsWith (".cpp", Qt::CaseInsensitive) ; // N=true,不区分大小写
N=str1.endsWith (".CPP", Qt::CaseSensitive) ; // N=false,区分大小写
N=str1.startsWith ("g: ") ; // N=true,缺省为不区分大小写
left() 和 right()
left 表示从字符串中取左边多少个字符,right 表示从字符串中取右边多少个字符。注意,一个汉字被当作一个字符。
QString str2, str1="学生姓名,男,1984-3-4,汉族,山东";
N=str1.indexOf (",") ; // N=4,第一个","出现的位置
str2=str1.left (N) ; //str2="学生姓名"
N=str1.lastIndexOf (",") ; // N=18,最后一个逗号的位置
str2=str1.right (str1.size()-N-); //str2=”山东",提取最后一个逗号之后的字符串
section()
section() 函数的原型为:
QString section (const QString &sep, int start, int end = -, SectionFlags flags = SectionDefault) const
其功能是从字符串中提取以 sep 作为分隔符,从 start 端到 end 端的字符串。
QString str2, str1="学生姓名,男,1984-3-4,汉族,山东";
str2=str1.section (",",,); // str2="学生姓名", 第 1 段的编号为 0
str2=str1.section (",",,}; // str2="男"
str2=str1.section (",",,}; // str2="学生姓名,男"
str2=str1.section (",",,); // str2="山东"
QString 还有很多功能函数没有在此介绍,在使用中如果遇到,可查询 Qt 的帮助文件。
Qt QString类及常用函数功能详解的更多相关文章
- mybatis中的mapper接口文件以及example类的实例函数以及详解
##Example example = new ##Example(); example.setOrderByClause("字段名 ASC"); //升序排列,desc为降序排列 ...
- PHP类和对象函数实例详解
1. interface_exists.class_exists.method_exists和property_exists: 顾名思义,从以上几个函数的命名便可以猜出几分他们的功能.我想这也是我随着 ...
- Excel—TEXT函数功能详解
1.将数值转为文本: "@" 2.转换为特定时间格式: "yyyy年mm月dd日" "yyyy/mm/dd" "yyyy/m/d& ...
- 第15.44节、PyQt输入部件:QAbstractSlider派生类QScrollBar滚动条、QSlider滑动条、QDial刻度盘功能详解
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.引言 Designer中的输入部件Horizo ...
- Delphi中TStringList类常用属性方法详解
TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. 常规的用法大家都知道,现在来讨论它的一些高级的用法. 先把要讨论的几个属性列出来: 1.CommaText 2.Delim ...
- Jmeter常用功能详解
嘻嘻,忙碌的一周,马上就到周四了~明天就是周五了,可以去嗨了! 这几天正式成立了一个微信订阅号,旨在免费帮助需要入门软件测试的小白! 各位走过路过的亲,欢迎订阅哦:扫描二维码即可订阅
- Fiddler抓取https请求 & Fiddler抓包工具常用功能详解
Fiddler抓取https请求 & Fiddler抓包工具常用功能详解 先来看一个小故事: 小T在测试APP时,打开某个页面展示异常,于是就跑到客户端开发小A那里说:“你这个页面做的有问 ...
- 第15.41节、PyQt(Python+Qt)入门学习:输入部件QComboBox组合框功能详解
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.概述 Designer中输入工具部件中的Combo Box组合框与 ...
- 第15.10节 PyQt(Python+Qt)入门学习:Qt Designer可视化设计界面组件与QWidget类相关的组件属性详解
PyQt学习有阵子了,对章节的骨架基本考虑好了,准备本节就写组件的属性的,结果一是日常工作繁忙,经常晚上还要加班,二是Qt的组件属性很多,只能逐一学习.研究和整理,花的时间有点长,不过终于将可视化设计 ...
随机推荐
- 修复grub
进入命令行模式,#chroot /mnt/sysimage :切换根目录#grub2-install /dev/sda :安装grub2到第一硬盘#grub2-mkconfig -o /boot/gr ...
- 87.QuerySet API使用详解:create方法
create:创建一条数据,并且保存到数据库中,这个方法相当于先用指定的模型创建一个一个对象,然后再调用这个对象的save方法,示例代码如下: from django.db import connec ...
- js正则验证数字的方法
正则验证数字的方法: <script type="text/javascript"> function validate(){ var reg = new RegExp ...
- header() 被用来发送自定义的 HTTP 报文
header() 被用来发送自定义的 HTTP 报文.关于HTTP报文的更多信息请参考» HTTP/1.1 specification. 请注意一点header()必须在任何实际输出之前调用,不管是普 ...
- 干货 | IP高防使用配置
一.知识简介 DoS(Denial of Service),即拒绝服务攻击.该攻击是利用目标系统网络服务功能缺陷或者直接消耗其系统资源,目的是使该目标客户的系统不可用,无法提供正常的服务. DDoS( ...
- Java线程(一)——创建线程的两种方法
Thread 和 Runnable Java程序是通过线程执行的,线程在程序中具有独立的执行路径.当多条线程执行时,它们之间的路径可以不同,例如,一条线程可能在执行switch的一个case语句,另一 ...
- textarea高度自适应解决方法
引入autosize.js <script src="./autosize.js"></script> autosize(document.getEleme ...
- [浅学]POST、GET、PUT、DELETE 请求
HTTP定义了与服务器交互的不同的方法,最基本的是POST.GET.PUT.DELETE,与其比不可少的URL的全称是资源描述符,我们可以这样理解: url描述了一个网络上资源,而post.get.p ...
- spring-boot 如何加载rsources下面的自定义配置文件
spring-boot 如何加载resources下面的自定义配置文件 https://segmentfault.com/q/1010000006828771?_ea=1144561
- PAT Advanced 1070 Mooncake (25) [贪⼼算法]
题目 Mooncake is a Chinese bakery product traditionally eaten during the Mid-Autumn Festival. Many typ ...