• 7165阅读
  • 3回复

QString截取字符效率 [复制链接]

上一主题 下一主题
离线六允
 

只看楼主 倒序阅读 楼主  发表于: 2014-09-11
如题,我想截取"X2.135 Y25.4 Z21.6"中的坐标值,我是这样做的
QRegExp cut_xData("\\X([^\\ ]+)\\b");
if(Data.contains("X",Qt::CaseInsensitive))
{
       cut_xData.indexIn(lineData);
       f_x = cut_xData.cap(1).toFloat();
}
获取更多的坐标时速度就会慢,求给个更快的方法
在线toby520

只看该作者 1楼 发表于: 2014-09-11
这个字符串够奇葩的,X2.135 Y25.x中间是一个空格吗?这样的话使用split进行分割,然后去除去X就可以拿到后面的数字
QtQML多多指教开发社区 http://qtclub.heilqt.com
将QtCoding进行到底
关注移动互联网,关注金融
开发跨平台客户端,服务于金融行业
专业定制界面
群号:312125701   373955953(qml控件定做)
在线toby520

只看该作者 2楼 发表于: 2014-09-11
贴个搓的办法
QString locationXYZ("X2.135 Y25.4 Z21.6");
    QStringList arrlst;
    arrlst.clear();
    for(int i=0;i<10000;i++){
        arrlst.append(locationXYZ);
    }
    qDebug()<<"begin time is "<<QDateTime::currentDateTime().toString("yyyyddmmhhss");
    for(int j=0;j<arrlst.count();j++){
        QStringList lst = arrlst.at(j).split(" ");
        //qDebug()<<"lst:::::::::: "<<lst;
        foreach (QString str, lst) {
            //qDebug()<<"str==============> "<<str.remove(0,1);

        }
    }
    qDebug()<<"end time is "<<QDateTime::currentDateTime().toString("yyyyMMddmmhhss");
QtQML多多指教开发社区 http://qtclub.heilqt.com
将QtCoding进行到底
关注移动互联网,关注金融
开发跨平台客户端,服务于金融行业
专业定制界面
群号:312125701   373955953(qml控件定做)
离线六允

只看该作者 3楼 发表于: 2014-09-11
多谢版主
快速回复
限100 字节
 
上一个 下一个