QString中提取数字问题

yubing303285 2013-01-07 10:40:08
刚学Qt,想请教下如何在1920 x 1080这样一个式子分别提取乘号前后的两个数字,主义乘号前后的数字并不一定是四位数。
急求解决阿。
另外问一下,有没有QT交流群
...全文
2152 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
振星 2014-01-09
  • 打赏
  • 举报
回复
用正则处理下:

#include <QRegExp>
#include <QDebug>

 QString str = "1720 * 1080";
    QRegExp rx("(\\d+)");  // 匹配数字
    int pos = 0;
    while ((pos = rx.indexIn(str, pos)) != -1) {
        qDebug()<<rx.cap(0).toInt();
        pos += rx.matchedLength();
    }
中间可以是任意符号或者字符。
zhaigates 2014-01-08
  • 打赏
  • 举报
回复
如果中间是字符呢
zhangshan415 2013-01-08
  • 打赏
  • 举报
回复
QString str = "1920x1080"; int pos = str.indexof('x') ; qDebug() << str.left(pos) ; qDebug() << str.right(pos) ; 也可以实现,方法多多。共同学习。
yubing303285 2013-01-07
  • 打赏
  • 举报
回复 1
引用 1 楼 jdwx1 的回复:
QString str = "1920 x 1080"; QStringList sl = str.split("x"); qDebug()<<sl.first();//第一个数字 qDebug()<<sl.last();//第二个数字 还可以: qDebug() << sl.at(0);//第一个数字 qDebug() << sl.at(1);//第二个数字……
太感谢这位大哥了~~~能留个QQ之类的吗
jdwx 2013-01-07
  • 打赏
  • 举报
回复
qDebug() << sl.at(0).toInt();//第一个数字 qDebug() << sl.at(1).toInt();//第二个数字 上面的帖子忘写toInt()了。
jdwx 2013-01-07
  • 打赏
  • 举报
回复
QString str = "1920 x 1080"; QStringList sl = str.split("x"); qDebug()<<sl.first();//第一个数字 qDebug()<<sl.last();//第二个数字 还可以: qDebug() << sl.at(0);//第一个数字 qDebug() << sl.at(1);//第二个数字

16,203

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧