当前位置: 代码迷 >> QT开发 >> qt QString 字符串处理有关问题
  详细解决方案

qt QString 字符串处理有关问题

热度:1146   发布时间:2016-04-25 05:14:37.0
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);
}
  相关解决方案