首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

qt QString 字符串处理有关问题

2012-02-20 
qt QString 字符串处理问题例如:QString str “abc defcdaacd aaa”如何让 str“abc def cda acd aaa”就

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);
}

热点排行