QStringList先排英文在排中文
时间: 2023-11-28 14:51:37 浏览: 67
QT QStringList 用法.docx
5星 · 资源好评率100%
可以使用QCollator进行字符串排序,QCollator可以根据语言的不同来进行排序。
以下是一个示例代码,可以实现将QStringList中的字符串按照英文在前,中文在后的顺序进行排序:
```cpp
#include <QtWidgets>
bool compare(const QString &s1, const QString &s2)
{
QCollator collator(QLocale(QLocale::English, QLocale::UnitedStates));
return collator.compare(s1, s2) < 0;
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QStringList list;
list << "apple" << "banana" << "中国" << "dog" << "cat" << "北京";
qSort(list.begin(), list.end(), compare);
foreach (const QString &str, list) {
qDebug() << str;
}
return app.exec();
}
```
在上面的代码中,我们定义了一个compare函数用于比较两个QString字符串的大小,QCollator使用了英语-美国语言环境进行排序,这样英文字符串就会排在中文字符串前面。然后我们使用qSort对QStringList进行排序,最后输出排序后的结果。
阅读全文