QString的常用方法(小结)

简介

QString 字符串被每个GUI程序所使用,不仅是用户界面,还有数据结构。

C++原生提供两种字符串: 传统的C风格以'\0'结尾的字符数组和std::string类。与这些不同,QString使用16-bit Unicode值
当使用QString时,我们不必操心如此隐秘的细节,像分配足够的内存或者是数据是'\0'结尾的。 总的来说,QString可以被认为是一个QChar向量。一个QString能嵌入'\0'字符。 length()函数返回整个字符串大小,包括嵌入的'\0'。

追加字符串

QString提供一个二元+操作符来连接两个字符串和一个+=操作符来向一个字符串追加字符串。

例如:

QString str = "A";
QString str2 = "D";
str = str + "B";
str2 += "E";

结果为, str为“AB”,str2为“DE”

组合字符串

(1)使用QString的sprintf()函数

例如:

QString str;
str.sprintf("%s %.1f%%", "Value", 100.0);

结果str被赋值为 “Value 100.0%”。

(2)使用arg()

例如:

QString str;
str = QString("%1,%2").arg("aa").arg("bb");

结果str为“aa,bb”

数字转换为字符串

(1)使用静态函数QString::number()
例如:

str = QString::number(38.5);

(2)使用setNum()函数

str.setNum(38.5);

字符串转换为数字

使用的是toInt(), toLongLong(), toDouble()…等等。

例如:

QString str = "12";
int i = str.toInt();

提取字符串

(1) mid()函数返回一个给定起始位置(第一个参数)和长度(第二个参数)的字串。

例如:

QString str = "white man";
QString str2 = str.mid(6, 2);

结果str2为“ma”

(2)如果省略第二个参数,mid()返回从指定的起始位置到这个字符串结尾的子串。

QString str = "white man";
QString str2 = str.mid(6);

结果str2为“man”

(3)left()函数返回最前面的n个字符

QString str = "white man";
QString str2 = str.left(5);

结果str2为“white”

(4)right()函数返回最后面的n个字符

QString str = "white man";
QString str2 = str.right(3);

结果str2为“man”

判断字符串是否包含

如果我们希望找出一个字符串是否包含某个字符,字符串,或者正则表达式,我们可以使用QString的indexOf()函数。

QString str = "white man";
int i = str.indexOf("man");

结果,i为6,若不存在为-1。

判断字符串是否以某物开始或者结束

(1)以某物开始,使用startsWith()函数

QString str = "http:www.baidu.com";
int i = str.startsWith("http:");

结果为i = 1;

(2)以某物结束,使用endsWith()函数

QString str = "http:www.baidu.com";
int i = str.endsWith("com");

结果为i = 1;

大小写切换

(1)切换为大写,使用toUpper()函数

QString str = "FileName";
QString str2 = str.toUpper();

结果str2为“FILENAME”

(2)切换为小写,使用toLower()函数

QString str = "FileName";
QString str2 = str.toLower();

结果str2为“filename”

字符串替换

(1)用一个字符串替换另一个字符串的某一部分,可以用replace()函数

QString str = "white man";
str.replace(0 , 5, "Black");

结果str为“Black man”

(2)删除从位置n开始的m个字符,使用remove(n,m)函数

QString str = "white man";
str.remove(6,3);

结果str为“white”

(3)在位置n插入某个字符串,使用insert(int, QString)函数

QString str = "white man";
str.insert(6,"strong ");

结果str为“white strong man”

过滤空白字符

从字符串的两端删除空白符,使用trimmed();

QString str = " white man ";
QString str2 = str.trimmed();

结果str2为“white man”

分割字符串

一个字符串能被分成为一个装有子串的QStringList,通过使用QString::split()

QString str = "white black yellow";
QStringList color = str.split(" ");

结果color.at(1)为“white”, color.at(2)为“black”,color.at(3)为“yellow”

判断字符串是否为空

调用isEmpty()或检查length()是否为0就可以达到目的。

if(str.isEmpty()){}
if(str.length() == 0){}

const char * 转为 QString

(1)隐式转换(自动)

例如:

str = "( 121 )";

(2)显式转换

简单地使用一个QString cast,或者调用fromAscii()或fromLatin1()函数

QString 转为 const char *

使用toAscii()或toLatin1()。 这些函数返回一个QByteArray,它能被转换为一个const char *,通过使用QByteArray::data()或QByteArray::constData()。

例如:

QString = "(1178)"
str.toAscii().data();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • QString使用正则操作的接口实现

    介绍QString使用正则操作的接口. Qt 5.0引入QRegularExpression,相比于QRegExp,前者修复了很多bugs,功能上也是兼容于QRegExp.推荐使用QRegularExpression. contains 正则表达式rx是否与字符串中的某个地方匹配,匹配返回true,否则返回false. bool contains(const QRegExp &rx) const bool contains(QRegExp &rx) const bool contains(

  • QString和char以及string之间的赋值详解

    一.QString赋值给char* 例如: QString  qstr: char *str = qstr.toLatin1().data();//这样便把qstr中的值传给了str 二 .char [] 赋值给string char str[32]; string str2(str);//这样便把str中的值传给了str2 三 .char* 赋值给QString 例如:char *str1; QString str2; str2 += str1;//这样便把str1中的值传给了str2

  • QString的常用方法(小结)

    简介 QString 字符串被每个GUI程序所使用,不仅是用户界面,还有数据结构. C++原生提供两种字符串: 传统的C风格以'\0'结尾的字符数组和std::string类.与这些不同,QString使用16-bit Unicode值 当使用QString时,我们不必操心如此隐秘的细节,像分配足够的内存或者是数据是'\0'结尾的. 总的来说,QString可以被认为是一个QChar向量.一个QString能嵌入'\0'字符. length()函数返回整个字符串大小,包括嵌入的'\0'. 追加字

  • Qt中QStringList与QString的常用方法总结

    目录 QString 转 QByteArray QByteArray 转 QString QStringList 转 QString QStringList 其他常用方法 QString 其他常用方法 本文汇集了QString 与 (QStringList | QByteArray)之间的转换,以及QString.QStringList的一些常用方法. QString 转 QByteArray //method<1> QString src1("hello kandy");

  • PHP获取文件扩展名的常用方法小结【五种方式】

    本文实例总结了PHP获取文件扩展名的常用方法.分享给大家供大家参考,具体如下: 这是我应聘实习时遇到的一道笔试题: 使用五种以上方式获取一个文件的扩展名. 要求:dir/upload.image.jpg,找出 .jpg 或者 jpg , 必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数,比如 get_ext1($file_name), get_ext2($file_name) 下面是我参考网上资料总结出来的五种方法,都比较简单,话不多说,直接上代码: 方法1: functi

  • java中request常用方法小结

    HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息. request常用方法: 一.获取客户机环境信息常见方法: 1.getRequestURL方法返回客户端发出请求时的完整URL. 2.getRequestURI方法返回请求行中的资源名部分. 3.getQueryString方法返回请求行的参数部分. 4.getRemoteAddr方法返回发出请求的客户机

  • php显示时间常用方法小结

    本文实例讲述了php显示时间常用方法.分享给大家供大家参考.具体分析如下: 一.PHP函数Date()获取当前时间 代码: 复制代码 代码如下: <?php echo $showtime=date("Y-m-d H:i:s");?> 显示的格式: 年-月-日 小时:分钟:秒 相关参数: a:"am"或者"pm" A:"AM"或者"PM" d:几日,二位数字,若不足二位则前面补零,如: "

  • Yii2数据库操作常用方法小结

    本文实例讲述了Yii2数据库操作常用方法.分享给大家供大家参考,具体如下: 查询: // find the customers whose primary key value is 10 $customers = Customer::findAll(10); $customer = Customer::findOne(10); // the above code is equivalent to: $customers = Customer::find()->where(['id' => 10

  • PHP中Header使用的HTTP协议及常用方法小结

    本文实例总结了PHP中Header使用的HTTP协议及常用方法.分享给大家供大家参考.具体方法如下: 复制代码 代码如下: <?PHP function https($num) { $http = array ( 100 => "HTTP/1.1 100 Continue", 101 => "HTTP/1.1 101 Switching Protocols", 200 => "HTTP/1.1 200 OK", 201 =

  • python执行外部程序的常用方法小结

    本文实例总结了python执行外部程序的常用方法.分享给大家供大家参考.具体分析如下: 在python中我们可以通过下面的方法直接调用系统命令或者外部程序,使用方便 1.os模块的execl方法 Python的execl系统方法同Unix的exec系统调用是一致的.这些方法适用于在子进程中调用外部程序的情况,因为外部程序会替换当前进程的代码,不会返回. 也就是说,这个shell进程被占领,将执行第一个execl的命令程序而不再返回. 2.使用os模块的system方法 system方法会创建子进

  • JSP清除页面缓存常用方法小结

    本文实例总结了JSP清除页面缓存常用方法.分享给大家供大家参考,具体如下: 一.清除页面缓存 在jsp页里 <%response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", 0); response.flushBuffe

  • Android开发中获取View视图宽与高的常用方法小结

    本文实例讲述了Android开发中获取View视图宽与高的常用方法.分享给大家供大家参考,具体如下: 一.根据WindowManager管理器获得 1)这两种方法在屏幕未显示的时候,还是处于0的状态,即要在setContentView调用之后才有效. 2)Activity必须如此设置才能获得view的宽高 //设置为无标题 requestWindowFeature(Window.FEATURE_NO_TITLE); //设置为全屏模式getWindow().setFlags(WindowMana

随机推荐