2 yxts122 YXTS122 于 2016.01.22 18:32 提问

图中方框里的代码能简写吗?感觉重复了。

图片说明

 QTextCharFormat myFormat;
    myFormat.setFontWeight(QFont::Bold);
    myFormat.setForeground(Qt::green);
    QString pattern="\\bchar\\b";
    QRegExp expression(pattern);
    int index=text.indexOf(expression);
    while(index>=0)
    {
        int length=expression.matchedLength();
        setFormat(index,length,myFormat);
        index=text.indexOf(expression,index+length);
    }
    QString patt="\\bdouble\\b";
    QRegExp express(patt);
    int inde=text.indexOf(express);
    while(inde>=0)
    {
        int lengt=express.matchedLength();
        setFormat(inde,lengt,myFormat);
        inde=text.indexOf(express,inde+lengt);
    }

3个回答

91program
91program   Ds   Rxr 2016.01.22 18:49
已采纳

写入 for 循环两次,第一次 "\bchar\b";第二次 "\bdouble\b";

YXTS122
YXTS122 好像写不出,要不你写一个
接近 2 年之前 回复
YXTS122
YXTS122 那是不是要写成数组的形式?
接近 2 年之前 回复
MARSHALBEN
MARSHALBEN   2016.01.23 11:27

定义宏(c语言是 #define xxx)然后把你的那几行代码放到那一样后面就行了。程序内用 xxx 表示这几行代码。

John_ToStr
John_ToStr   Rxr 2016.01.23 10:04

写入for循环可以。但是时间复杂度增大了。空间复杂度却没有大的改善,这样子并不是很合理。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!