QT中QString的所有类用法大全

前言

之前用到QT中QString的用法,但总是忘记,这次自己整理出来,自己想用可以随时查看,同时也可以帮助到大家。

一、QString与其他变量的转换

int,float,double转换为QString

1、QString::number();

例如:

int a = 20;

QString s = QString::number(a, 10);        //转换为十进制 s == "20"

QString s = QString::number(a, 16);        //转换为十六进制 s == "14"

2、QString(“%”).arg();

例如:

int a = 8;

QString s = QString("%1").arg(a);             // s == "8"

解释(%1为占位符)

3、QString转换为 double类型

QString s = "8.88";

double a = s.toDouble();        //a = 8.88    

4、QString转换为 float类型

QString s = "8.88";

float a = s.toFloat();        //a = 8.88    

5、QString转换为int

Qstring s="FF";

bool ok;

int dec=s.toInt(&ok,10); //转为十进制dec=255 ; ok=rue

int hex =s.toInt(&ok,16); //转为十六进制hex=255;ok=true;  

6、QString转换为char *

QString qstr("hello,word");

const char * p = qstr.toLocal8Bit().data();  

7、QString转换为QByteArray

QByteArray byte;

QString string;

byte = string.toLocal8Bit();本地编码

byte = string.toUtf8() 中文 

二、QString类函数

1.追加字符 append

QString str = "hello";

str += "world";      //str = "helloworld"

str.append("test");   //向后追加:str = "helloworldtest"

str.prepend("This is ");     //向前追加:str = "This is helloworldtest"

2.组合字符QString(%1)

QString str;

str = QString("%1 %2 %3 %4").arg("This").arg("is").arg("a").arg("test");       //str = "This is a test"

3.清除指定子串remove

QString str = "Hello World";

QString ss = str.remove("l");         //ss = "Heo Word"(移除指定字符串l)

4.字符串提取mid、left、right

QString s = "QString";

QString ss = s.mid(13);         //ss = "Str"(从第1 个后截取后面3个字符)
QString s = "QString";

QString ss = s.mid(1);           //ss = "String"(省略第二个参数表示从position开始截取到末尾)
QString s = "QString";

QString ss = s.left(4);          //ss = "QStr"(截取前4个字节并返回)
QString s = "QString";

QString ss = s.right(3);        //ss = "ing"(截取最后3个字节并返回)

5.判断某个字符是否存在(contains)

存在字符返回true,否则返回false

QString s = "QString";

bool b = s .contains("ing",Qt::CaseSensitive)       //true

6.判断字符串是否是isEmpty

bool isEmpty () const//原型

QString().isEmpty();                 // returns true

QString("").isEmpty();              // returns true

QString("x").isEmpty();             // returns false

7.判断字符串是否NULL

bool isNull () const//原型

QString().isNull();                 // returns true

QString("").isNull();              // returns false

QString("abc").isNull();           // returns false

8.分割字符串split

取出3个字符串

QString str = "You,I,She";

QStringList list= str.split(",");         //根据“,”来分割字符串,list.at(0) = "You", list.at(1) = "I", list.at(2) = "She"

过滤头尾空白字符串 trimmed

QString s(" abc def ghi "); 

s = s.trimmed();                         //s = "abc def ghi"

9.大小写切换toUpper、toLower

切换全大写

QString s = "Hello";

QString ss = s.toUpper();             //ss = "HELLO"

切换全小写

QString s = "Hello";

QString ss = s.toLower();            //ss = "hello"

10.判断是否以某个字符串开始或结束startsWith、endsWith

QString s = "http:www.baidu.com";

bool i = s.startsWith("http:");           //返回true

bool i = str.endsWith("com");             //返回true

11.获取字符串长度count、length(中文也只能算一个字符)

QString s = "Hello World";

获取长度:s.count();                     //11

获取字串出现次数 s.count("l");           //3

获取长度:s.length();                    //11

12.查找字符串获取第一次出现位置索引

QString x = "std::string & QString";

QString y = "ing"; 

表示从第0个开始,整个字符第8个位置

x.indexOf(y);                        // return 8

表示从第10个开始,整个字符第18个位置

xx.indexOf(y,10);                    // return 18

表示从第18个开始,后续无法查找到y

x.indexOf(y,19);                     // return -1

13.插入(insert)

QString s = "hello world";

s = s.insert(6,",");                 //往s的第六位插入, s = "hello ,world"

14.替换replace

QString str = "white man";

str.replace(0 , 5, "Black");          //结果str为“Black man”

15.删除尾部字符chop

QString str = "white man";

str.chop(4);          //结果str为“Black”
  • 8
    点赞
  • 94
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仰望space

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值