经常会遇到一种业务场景,就是剔除我们不需要的字符,当然往往会借助正则表达式处理,
不过在某些场合,可能明确知道需要剔除的字符,就可以尝试采用以下的方法,即通过遍历的方式,
这往往适用于数据量不大的情况。
封装的接口
void parseData(QString &str)
{
char array[]={'n','b','a'}; //需要去除的字符
int length = sizeof (array)/sizeof (char);
for(int i=0;i<length;i++)
{
QString tmp = QString(array[i]);
if(str.contains(tmp))
{
str=str.replace(tmp,"");
}
}
}
遍历时,通过contains接口,判断字符串中是否有需要剔除的字符,然后采用replace接口,将需要剔除的字符替换为空,就可以达到目标。
示例
int main(int argc,char *argv[])
{
QString str = "abcdefgn";
qDebug()<<"替换前 str="<<str;
parseData(str);
qDebug()<<"替换后 str="<<str;
}
输出
替换前 str= "abcdefgn"
替换后 str= "cdefg"