使用“aiueo”顺序对日语文本进行排序

时间:2009-05-01 14:32:40

标签: .net sorting cultureinfo

我正在尝试使用“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 :(得分:0)

是的,有。您所需要的只是一个区域设置感知的排序。我不是Java专家也不是用户,但是使用strcoll结合qsort就是我在C中所做的。

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