新手求教 文本处理问题
简单的说就是对textEdit中的文字统计字频,就是出现的次数,然后从大到小排序。
我只会统计次数,排序部分没思路,也只会单纯的对数字大小排序。
void Test::zpSlot(){
QString str=ui->textEdit->toPlainText();
QString str2;
QString str3;
//统计字频
for(int i=0;i<str.length();i++){
int s=str.count(str[i]);
str2.append(str[i]+QString::number(s)+"\n");
}
QStringList list = str2.split("\n");
//删除重复行
for(int i=0;i<list.count();i++){
if(!str3.contains(list[i])){
str3+=list[i];
str3+='\n';
}
}
ui->textEdit->setPlainText(str3);
}
以上代码执行后,
比如“的的好是人总总总一不不不不不”
处理后变成了:
的2
好1
是1
人1
总3
一1
不5
而我要的结果:
不5
总3
的2
好1
是1
人1
一1
求大神们提供下排序部分的代码。感谢!
只有40积分了,怎么积分越用越少。。。。。
------解决思路----------------------