Qt 字符串类 QString

本文详细介绍了Qt中的QString类,包括字符串的长度计算、组合、查询、比较和转换等操作,帮助理解其在Unicode环境下的使用。特别强调了NULL字符串与空字符串的区别。

QString 类保存了16位Unicode 值,接下来看看如何操作字符串。

求长度

length()

字符串的组合

方式一   +    += 
    QString str = "Hello ";
    str = str+ "world";  //str="Hello world"
    str+="world";       //str="Hello world"
方式二  append()
    QString  str= "Welcome ";
    QString str1="to ";
    str.append(str1);
    str.append("you");    //str="Welcome to you"
方式三 sprintf()
    QString str;
    str.sprintf("%s","Hello ");
    str.sprintf("%s %s","Qt ","!");    //str="Hello Qt !"
方式四 arg()
    QString str;
    str=QString("%1 %2").arg("Thank ").arg("you"); //str="Thank you"
其他组合方法(不常用)
insert()   指定位置插入字符串
prepend()  开头插入字符串
replace()  新的字符串代替旧的

//首先说明一点,空白字符是指:\n   \r  \t    空格字符   4种
trimmed()  移除两端空白字符
simplified()  移除两端空白字符,并用单个空格字符代替字  符串中 出现的空白字符
获取用户输入的账号时很有用。
*****调用该方法后,字符串本身并没有被改变,只是这个方法的返回值是一个新的字符串*******

查询字符串


 判断字符串是否以 某个字符串 开头   startsWith();
 返回布尔类型
 参数一:某个字符串。
 参数二: Qt::CaseSensitive   区分大小写
        Qt::CaseInsensitive 不区分大小写 
判断字符串是否以 某个字符串 结尾   endWith();  同上
判断一个字符串是否包含特定的字符串  contains();  同上

比较

 判断两个字符串是否相等1:

    == 
 判断两个字符串是否相等2:

    QString::compare("字符串2","字符串2",Qt::CaseInsensitive)
    参数3:是否区分大小写

转换

转整型

toInt()  //
eg:   
    QString str="123";
    bool ok;
    str.toInt(&ok,10);  

    //转换成功时ok=true ,失败时ok=false
    //参数2:    字符串以0x开头     16
    //         字符串以0开头       8
    //         其他              10


类似的还有   toDouble()
           toFloat()
           toLong()
字符编码集的转换
qt提供的字符编码集转换函数会返回一个const  char* 类型的QByteArray对象
QByteArray可以存储raw bytes和传统的8-bits的字符串,都是以'\0'结尾的,使用比char*更方便。
QString也可以存储字符串信息,但通常以16-bits形式Unicode方式存储,这有利于非ASCII和非Latin-1格式的数据的存储。

 toLatin1()    返回一个Latin-1编码的8位字符串
 toLocal8Bit() 返回一个系统本地编码的8位字符串
 toUtf8()      返回一个UTF-8编码的8位字符串

一个NULL字符串一定为空
一个空的字符串不一定为NULL

截取

mid(); 
参数1:起始位置
参数2: 取串的长度

left(n);从左侧开始截取n个
right(n);从左侧开始截取n个

lastIndexOf()函数,返回字符串的最后一次出现的索引

indexOf()函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值