Сортировка японского текста по порядку "aiueo" - PullRequest
1 голос
/ 01 мая 2009

Я пытаюсь отсортировать названия некоторых японских магазинов, используя заказ "aiueo"

Кто-нибудь знает, есть ли алгоритм для этого

Я написал компаратор следующим образом, но я считаю, что культура ja-jp использует сортировку Unicode

internal class JewellerComparer : IComparer<string>
    {
        private readonly string _culture;

        public JewellerComparer(string culture)
        {
            _culture = culture;
        }

        public int Compare(string x, string y)
        {
            // no culture specified in constructor
            if (string.IsNullOrEmpty(_culture))
                return x.CompareTo(y);

            // otherwise to a culture sensitive comparison
            return string.Compare(x, y, false, new CultureInfo(_culture));
            //new CultureInfo(0x00010411); // ja-JP Japanese - Japan Default: 0x00000411 Unicode: 0x00010411 
        }
    }

У кого-нибудь есть идеи, как это сделать?

1 Ответ

0 голосов
/ 08 ноября 2009

Да, есть. Все, что вам нужно, это сортировка с учетом локали. Я не эксперт по Java и не пользователь, но использование strcoll в сочетании с qsort это то, что я бы сделал в C.

В качестве альтернативы, можно попробовать использовать libicu (также есть привязка java), и если она предлагает некоторую сортировку, я не уверен, соблюдает ли она локаль.

...