QString常见用法详解(二)QString常见用法详解(二)

小王子🤴 2020-12-02 22:49:48 12294
QString常见用法详解(二)
与Std::string 相互转换

1.std::string转QString
Std::string str = “asd”;
QString qStr = QString::fromStdString(str);
QString转std::string
QString qStr = “asd”;
Std::string str = qStr.toStdString();

判断是否包含子字符串

contains() 可指定是否区分大小写。
QString str1="Qt";
Bool b=str1.contains ("QT", Qt::CaseInsensitive) ; // b=true,不区分大小写
Bool b=str1.contains ("QT", Qt::CaseSensitive) ; // b=false,区分大小写

查找子字符串第一次出现位置

indexOf() 返回此字符串中第一次出现的字符串str的索引位置,从索引位置向前搜索。 如果找不到str,则返回-1。
lastIndexOf()函数,返回字符串的最后一次出现的索引。
如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写; 否则搜索不区分大小写。
区别:indexOf()方法从字符串的开头向后搜索字符串,而lastIndexOf()方法是从字符串的末尾向前搜索子字符串。

    QString str = "sticky question";
    qDebug() << str.indexOf("sti");//0
    qDebug() << str.indexOf("sti",1);//10
    qDebug() << str.indexOf("sti",10);//10
    qDebug() << str.indexOf("sti",11);//-1

    qDebug() << str.lastIndexOf("sti");//10
    qDebug() << str.lastIndexOf("sti",1);//0
    qDebug() << str.lastIndexOf("sti",10);//10
    qDebug() << str.lastIndexOf("sti",11);//10
字符串截取

mid()
函数接受两个参数,第一个是起始位置,第二个是取串的长度。如果省略第二个参数,则会从起始位置截取到末尾
QString x = "Nine pineapples";
QString y = x.mid(5, 4);// y == "pine"
QString z = x.mid(5); // z == "pineapples"
left()、rigt()
这两个函数类似,都接受一个int类型的参数n,都是对字符串进行截取。不同之处在于,left()函数从左侧截取n个字符,而right()从右侧开始截取。
QString x = "Pineapple";
QString y = x.left(4); // y == "Pine"
QString z = x.right(4);//z==pple

删除

Remove()
删除指定位置
QString s = "Montreal";
s.remove(1, 4);
// s == "Meal"
删除指定字符
QString s = "Montreal";
s.remove('o');
qDebug() << s;//Mntreal

插入

insert 指定位置插入字符串
QString str = "Meal";
str.insert(1, QString("ontr"));
// str == "Montreal"

数字转换

字符串转数字
QString s = "123.2";
qDebug() << s.toInt();
qDebug() << s.toDouble();
数字转字符串
double i = 123.21;
qDebug() << QString::number(i);//"123"
qDebug() << QString::number(i,'f',2);//"123.21"

替换

QString & QString::replace ( int position, int n, const QString & after )

QString x = "Say yes!";
QString y = "no";
x.replace(4, 3, y);
// x == "Say no!"

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 37 5 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
小王子🤴
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区