QT QString

QString存储了一串QChar,而QChar提供了一个16位的unicode4.0字符。在后台,QString使用隐士共享implicit sharing来减少内存使用和避免不必要的数据复制,这也有助于减少存储16位字符的固有开销。

编辑操作,查询,转换

#include <QCoreApplication>
#include <QList>
#include <QDebug>
#include <QMap>
#include <QMultiMap>
#include <QStringList>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    //编辑操作
    QString str = "Hello";
    qDebug()<<QObject::tr("the sizeof str:")<<str.size();//大小为5
    qDebug()<<str[0];           //获取第一个字符
    str[0] = 'h';               //修改第一个字符
    str.append(" Qt");           //向字符串后添加"Qt"
    str.replace(1,4,"i");       //将第一个字符开始的后面4个字符替换为字符串"i"
    str.insert(2,"my");         //在第二个字符位置插入"my"
    str += "!!!";               //连接两个字符串
    str = " hello     world ";
    //去除空格
    QString str1 = str.trimmed();//除去字符串两端的空白字符
    qDebug()<<str1;
    str1 = str.simplified();//除去字符串两端和中间多余的空白字符
    qDebug()<<str1;
    str1 = str.replace(" ","");//除去所有空白字符
    qDebug()<<str1;
    str = "hi,my,,Qt";
    //从字符串中获取字符串数组,用逗号分开
    QStringList list1 = str.split(",",QString::SkipEmptyParts);//跳过空的
    QStringList list2 = str.split(",");//不跳过空的
    str1 = list1.join(" ");//将各个子字符串组合成一个字符串,中间用" "隔开
    QString str2 = list2.join("");
    qDebug()<<QString().isNull();//结果为true
    qDebug()<<QString().isEmpty();//结果为true
    qDebug()<<QString("").isNull();//结果为false
    qDebug()<<QString("").isEmpty();//结果为true
    //查询操作
    str = "yafeilinux";
    str1 = str.left(5);//取左边五个字符,yafei
    str2 = str.right(5);//取右边五个字符,linux
    str1 = str.mid(2,3);//从第二个字符开始取三个字符,fei
    int index = str.indexOf("fei");//获取fei的位置,结果为2
    index = str.indexOf("df");//获取df的位置,结果为-1
    int count = str.count('i');//统计i的个数,结果为2
    bool b1 = str.startsWith("ya");//是否以ya开始
    bool b2 = str.endsWith("linux");//是否以linux结束
    bool b3 = str.contains("il");//是否包含il
    str1 = "abcd";
    bool b4 = str1>str;//str1是否大于str
    //转换操作
    str =  "100";
    int num = str.toInt();  //QString转int
    num += 100;
    str = QString::number(num);//int转QString
    str = "FF";
    bool ok;
    int hex = str.toInt(&ok, 16);//ok=true,hex=255
    num = 26;
    str=QString::number(num,16);//str=la
    str = "123.456";
    float f=str.toFloat();
    str = "abc";
    str = str.toUpper();//结果为ABC
    str1 = str.toLower();//结果为abc
    num = 26;
    str1 = "liuzc";
    str = QString("name is %1,age is %2").arg(str1).arg(num);//格式化字符串,结果为name is liuzc,age is 26
    str ="%1 %2";
    str1 = str.arg("% 1f","hello");//结果为% 1f hello
    str2 = str.arg("% 1f").arg("hello");//结果为% 1f hello
    str = QString("ni%1").arg("hi",5,'*');//设置字段宽,使用*填充ni***hi
    qreal value = 123.456;
    str = QString("num:%1").arg(value,0,'f',2);//结果str为num:123.46,四舍五入了?
    qDebug()<<str;
    qDebug()<<qPrintable(str);//不会显示引号
    return a.exec();
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值