Qt分割字符串方法(封装)

分割字符串一般会用到 split 方法进行分割.

QString str1 = "apple/orange/banana";
QStringList sListCode=str1.split('/');

foreach ( QString sCode, sListCode) {
            qDebug << sCode ;
        }

下面对这个方法进行封装.

std::vector resultStrList;
resultStr.clear();

QString curStr = QString("0303/0304/0306/0402/0603/1105/1106/1108");
getDivision(curStr,resultStrList,"/");    //调用封装的方法,获取截取的数据List(resultStrList)

for(auto itr=resultStrList.begin();itr != resultStrList.end();itr++)
{
    QString resultStr=*itr;
    qDebug << resultStr ;
}

方法 : getDivision()

头文件里:

static int getDivision(QString curStr,std::vector& resultStrList,QString strFind);

cpp文件里:

int getDivision(QString curStr,std::vector& resultStrList,QString strFind)
{
    if(curStr.isEmpty() || strFind.isEmpty())
        return 0;

    int nPos=0;

    QString sTemp,sLeft,sRight;
    sTemp=curStr;

    nPos=sTemp.indexOf(strFind);
    while (nPos>=0)
    {
        sLeft = sTemp.left(nPos);
        sRight = sTemp.mid(nPos + 1);
        sTemp = sRight;

        resultStrList.push_back(sLeft);

        nPos = sTemp.indexOf(strFind);
    }

    resultStrList.push_back(sTemp);

    return (int)resultStrList.size();
}

 

断了的弦再怎么连,我的感觉你已听不见 《断了的弦》

 

你可能感兴趣的:(♪,--,Qt)