专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > QT开发

qt QString 字符串处理有关问题

发布时间:2010-05-30 21:36:05 文章来源:www.iduyao.cn 采编人员:星星草
qt QString 字符串处理问题
例如: QString str =“abc def cda acd aaa”;


如何让 str=“abc def cda acd aaa”;
就是把一个串中的连续多个空格替换成一个空格。

qt里有没有什么函数直接一步就完成的呢。
如: str.replace();
最好能详细写出里面的参数。



------解决方案--------------------
楼主为什么 不自己是一个方法来实现他呢?
C/C++ code

QString Func(const QString &temp)
{
    bool flag=false;
    QString temp2;
    for(int i=0;i!=temp.size();++i)
    {
        if(temp.at(i)==QChar(' '))
        {
            if(!flag)
            {
                temp2.append(' ');
            }
            flag=true;
        }
        else
        {
            temp2.append(temp.at(i));
            flag=false;
        }
    }
    return temp2;
}

------解决方案--------------------
regex.replace(str.Trim(),@"/s+"," ");
------解决方案--------------------
QString::simplified()
------解决方案--------------------
楼上几位的办法都可行,顶一下
------解决方案--------------------
QString::simplifyWhiteSpace () const 
返回一个移除了这个字符串的开始和结尾的空白符号的字符串,并且内部的空白符号都被替代为单一的空格。
------解决方案--------------------
探讨

引用:
QString::simplified()

我昨天用了这个函数了, 但是没有效果啊。。。。原来中间有多少个空格,用完后还是有多少个空格。。。。求解答。

------解决方案--------------------
不想搞太多代码就用正则撒,上面不是有个正则的吗?
QString s = "kjk kdjfd jkj kjd";
s.replace(QRegExp("[s]+"), " ");
qDebug()<<s;
------解决方案--------------------
int i=0;

while(i!=-1)
{
i=str.find(' ',++i);
if(str.find(' ',i+1)==(i+1))
str.remove (i+1,1);
}
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: