Qt下字符串列表按照自然顺序排序

有一组字符串:

{"L5A90E","L46c80","L5A91E","L46C80"}

希望经过排序后的结果为:

("L5A90E", "L5A91E", "L46c80", "L46C80")

代码如下:

void stringListSortDemo(void)
{
    QStringList sl = {"L5A90E","L46c80","L5A91E","L46C80"};
    QCollator collator;
    collator.setNumericMode(true); // 数字模式
    collator.setCaseSensitivity(Qt::CaseInsensitive); // 大小写敏感
    std::sort(sl.begin(), sl.end(), collator);///< 使用std::sort函数
    qDebug() << sl; // 输出("L5A90E", "L5A91E", "L46c80", "L46C80")
}

另外网上一种支持中文排序的配置为:

void stringListSortDemo(void)
{
    QStringList sl = {"人L5A90E","啊L46c80","L5A91E","L46C80"};
    QCollator collator(QLocale(QLocale::Chinese));// < 选择语言为中文
    collator.setNumericMode(true);
    collator.setCaseSensitivity(Qt::CaseInsensitive);
    std::sort(sl.begin(), sl.end(), collator);// < 使用std::sort函数
    DLOGFL() << sl; // 输出("L5A91E", "L46C80", "啊L46c80", "人L5A90E")
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值