有没有办法获得重复字符串在QStringList中的次数并将其与字符串本身分组?
例如,如果列表包含[" a"," a"," a"," a"," b"," b"," b"," c"," c"]
我可以把它变成像
这样的东西吗?a x4
b x3
c x2
我现在唯一的解决方案是使用QList::contains()
,然后用int添加它们但问题是有500个字符串可以进入QStringList所以我不想要用500英寸创建500个字符串。
答案 0 :(得分:4)
试试这个:
QMap<QString,int> countOfStrings;
QStringList listOfStrings;
listOfStrings<<"a"<<"b"<<"c"<<"a";
for(int i=0;i<listOfStrings.count();i++)
{
countOfStrings[listOfStrings[i]]++;
}
QMap
默认int
s为0.如果它第一次出现字符串,它会通过调用(newStr,0)
自动创建一个带countOfStrings[newStr]
的条目
您也可以qDebug()<<countOfStrings;