You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dart/Flutter中是否存在与Java Collator功能一致的插件或方法?

Dart/Flutter 中实现区域语言排序的方案

Dart生态中存在完全对标Java Collator能力的实现,无需使用非官方第三方插件即可实现按指定地区语言规则排序,避开直接基于Unicode编码排序的问题。

官方实现方案:intl 包的 Collator 类

Dart官方维护的intl包中内置了Collator类,功能和Java的Collator完全对齐,支持全球主流语言区域的排序规则。

使用步骤

  • 首先添加依赖,在项目根目录执行命令:
    flutter pub add intl
    纯Dart项目执行:dart pub add intl
  • 导入对应的类:
    import 'package:intl/intl.dart';
  • 按指定区域排序的代码示例:
// 初始化简体中文区域的Collator
final zhCollator = Collator('zh_CN');
List<String> cityList = ['北京', '上海', '广州', '深圳', '成都'];
// 调用Collator的compare方法作为排序规则
cityList.sort(zhCollator.compare);
print(cityList); // 输出符合中文拼音排序的结果:[北京, 成都, 广州, 上海, 深圳]
  • 支持自定义排序强度,比如忽略大小写、忽略重音符号:
// 初始化英文区域的Collator,设置为忽略大小写的排序强度
final enCollator = Collator('en_US')..strength = Collator.PRIMARY;
List<String> wordList = ['apple', 'Banana', 'cherry', 'Date'];
wordList.sort(enCollator.compare);
print(wordList); // 输出:[apple, Banana, cherry, Date]

注意事项

  • 目前intl包已经覆盖了全球绝大多数主流语言区域的排序规则,小众区域规则可以通过升级intl包版本获取支持。
  • 纯Dart服务端项目也可以直接使用该类,无Flutter框架依赖。

内容的提问来源于stack exchange,提问作者Jimmy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 14:39:04