より正確な日本語文字列の並び替え by waho

FlutterKaigi 2024
LTセッション

より正確な日本語文字列の並び替え

quad_loco waho quad_loco
2

概要

Dart3で以下を実行するとどうなるでしょうか?

void main() {
  final l = <String>['あいざわ', 'アイザワ', '相澤', 'いとう', 'イトウ', '伊藤'];
  l.sort();
  print(l);
}

出力結果は以下です。
[あいざわ, いとう, アイザワ, イトウ, 伊藤, 相澤]

当然空気を読んでくれるはずもなく、無情な結果が出力されました。
ひらがな→カタカナ→漢字どころか、伊藤が相澤より前になりました。
万年出席番号1番だった相澤さんもこれにはびっくりです。

現在観測できる限りでは、Dartでは現状これを直接解決するパッケージが存在しません。
本セッションではこの単純だが厄介な問題に対して、複数の観点から向き合っていきます。

想定視聴者

  • 日本語の文字列リストをそのままsort()してギョッとしたことがある方