1

我正在尝试使用“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 
        }
    }

有人对如何做到这一点有任何想法吗?

4

1 回答 1

0

就在这里。您所需要的只是一个区域感知排序。我既不是 Java 专家也不是用户,但是我会在 C 中使用 strcoll 和 qsort 结合使用。

或者,可以尝试使用 libicu(还有一个 java 绑定),如果它提供一些排序,我不确定它是否尊重语言环境。

于 2009-11-08T20:51:13.473 回答