qt-02-QString

1.格式化字符串

QString str1 = "";
str1.sprintf("你好,我叫%s,今年%d岁了!","发如雪",18);
qDebug()<<str1.toUtf8().data();

2.QString 转 char*

 QString str2 = "发如雪是最好的!";
 char *ptr = str2.toUtf8().data();
 char bufp[64] = {0};
 strcpy(bufp,ptr);
 qDebug()<<bufp;

3.char * 转QString

  char *ppp = "我是爸爸!";
  QString str3(ppp);
  QMessageBox::information(this,"提示",str3);

4.去掉空格

 QString str4 = "    我是    你    爸   爸!";
 //trimmed() 去掉字符串首尾的空格
 QString strtemp = str4.trimmed();
 qDebug()<<strtemp.toUtf8().data();
 //simplified() 不仅去掉首尾的空格,中间连续的空格也用一个空格替换
 strtemp = str4.simplified();
 qDebug()<<strtemp.toUtf8().data();

5.字符长度
count()、size() 和 length() 都返回字符串的字符个数,这 3 个函数是相同的,但是要注意,
//字符串中如果有汉字,一个汉字算一个字符

 QString str5 = "我是发如雪,I Love You!";
 qDebug()<<"str5 length:"<<str5.length();//17

6.查找字符串

    indexOf() 函数的原型为:
    int indexOf (const QString &str, int from = 0 , 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
    提示,"\" 是转义字符,如果要查找 "\",需要输入 "\\"。
   
    QString str6="I Love C++!";
    int npos = str6.indexOf("Lo",0);
    if(npos == -1)
    {

        qDebug()<<"not find it";
    }
    else
    {
        qDebug()<<npos;
    }

7. contains()
//判断字符串内是否包含某个字符串,可指定是否区分大小写。

	QString str7="G:\Qt5Book\QT5.9Study\qw.cpp";
    bool ret =str7.contains (".cpp", Qt::CaseInsensitive) ; // ret=true,不区分大小写
    qDebug()<<ret;
    ret=str7.contains (".CPP", Qt::CaseSensitive) ;  // ret=false,区分大小写
    qDebug()<<ret;

8.endsWith() 和 startsWith()
startsWith() 判断是否以某个字符串幵头,
endsWith() 判断是否以某个字符串结束。

QString str8="MG:\Qt5Book\QT5.9Study\qw.cpp";
bool N=str8.endsWith (".cpp", Qt::CaseInsensitive) ; // N=true,不区分大小写
N=str8.endsWith (".CPP", Qt::CaseSensitive) ; // N=false,区分大小写
N=str8.startsWith ("g: ") ; // N=true,缺省为不区分大小写

9.left() 和 right()
left 表示从字符串中取左边多少个字符,right 表示从字符串中取右边多少个字符。注意,一个汉字被当作一个字符。

QString str9="学生姓名,男,1984-3-4,汉族,山东";
N=str9.indexOf (",") ; // N=4,第一个","出现的位置
strtemp=str9.left (N) ; //str2="学生姓名"
N=str9.lastIndexOf (",") ; // N=18,最后一个逗号的位置
strtemp=str9.right (str9.size()-N-1); //str2=”山东",提取最后一个逗号之后的字符串

10.数字转QString,QString::number()

int n = 100;
QString str10 = QString::number(n);
QMessageBox::information(this,"提示",str10);
float f = 1000.99;

str10 = QString::number(f);
QMessageBox::information(this,"提示",str10);

11.QString 转数字
QString 类从字符串转换为整数的函数有:

int toInt(bool * ok = Q_NULLPTR, int base = 10) const
long toLong (bool * ok = Q_NULLPTR, int base = 10) const
short toShort (bool * ok = Q_NULLPTR, int base = 10) const
uint toUInt (bool *ok = Q_NULLPTR, int base = 10) const
ulong toULong (bool *ok = Q_NULLPTR, int base = 10) const

QString 将字符串转换为浮点数的函数有:

double toDouble(bool *ok = Q_NULLPTR) const
float toFloat (bool * ok = Q_NULLPTR) const
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

发如雪-ty

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

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

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

打赏作者

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

抵扣说明:

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

余额充值